From 543839bcee2bbe27a10f1b96307ad79236cf99db Mon Sep 17 00:00:00 2001 From: Eric Kohl Date: Sat, 3 Feb 2001 23:25:06 +0000 Subject: [PATCH] Implemented ObOpenObjectByPointer(). svn path=/trunk/; revision=1600 --- reactos/ntoskrnl/ob/object.c | 27 ++++++++++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) diff --git a/reactos/ntoskrnl/ob/object.c b/reactos/ntoskrnl/ob/object.c index d9a4fe7d90b..211d9a6030d 100644 --- a/reactos/ntoskrnl/ob/object.c +++ b/reactos/ntoskrnl/ob/object.c @@ -1,4 +1,4 @@ -/* $Id: object.c,v 1.32 2001/02/02 20:46:36 ekohl Exp $ +/* $Id: object.c,v 1.33 2001/02/03 23:25:06 ekohl Exp $ * * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS kernel @@ -334,6 +334,7 @@ NTSTATUS STDCALL ObReferenceObjectByPointer(PVOID ObjectBody, return(STATUS_SUCCESS); } + NTSTATUS STDCALL ObOpenObjectByPointer(IN POBJECT Object, IN ULONG HandleAttributes, @@ -343,8 +344,28 @@ ObOpenObjectByPointer(IN POBJECT Object, IN KPROCESSOR_MODE AccessMode, OUT PHANDLE Handle) { - UNIMPLEMENTED; - return STATUS_NOT_IMPLEMENTED; + NTSTATUS Status; + + DPRINT("ObOpenObjectByPointer()\n"); + + Status = ObReferenceObjectByPointer(Object, + 0, + ObjectType, + AccessMode); + if (!NT_SUCCESS(Status)) + { + return Status; + } + + Status = ObCreateHandle(PsGetCurrentProcess(), + Object, + DesiredAccess, + FALSE, + Handle); + + ObDereferenceObject(Object); + + return STATUS_SUCCESS; }