From 8532827bafa724a0d992ff227fecb10dc36ef539 Mon Sep 17 00:00:00 2001 From: Eric Kohl Date: Tue, 5 Mar 2002 00:20:54 +0000 Subject: [PATCH] Added ObGetObjectHandleCount(). svn path=/trunk/; revision=2672 --- reactos/ntoskrnl/include/internal/ob.h | 3 +++ reactos/ntoskrnl/ob/object.c | 29 ++++++++++++++++++++++++-- reactos/ntoskrnl/ps/create.c | 12 +++++------ 3 files changed, 36 insertions(+), 8 deletions(-) diff --git a/reactos/ntoskrnl/include/internal/ob.h b/reactos/ntoskrnl/include/internal/ob.h index 1e38f17a22f..fd2a9768f02 100644 --- a/reactos/ntoskrnl/include/internal/ob.h +++ b/reactos/ntoskrnl/include/internal/ob.h @@ -98,4 +98,7 @@ PVOID ObDeleteHandle(struct _EPROCESS* Process, NTSTATUS ObpCreateTypeObject(POBJECT_TYPE ObjectType); +ULONG +ObGetObjectHandleCount(PVOID Object); + #endif /* __INCLUDE_INTERNAL_OBJMGR_H */ diff --git a/reactos/ntoskrnl/ob/object.c b/reactos/ntoskrnl/ob/object.c index 3c45b2bde13..7e78bfeddb1 100644 --- a/reactos/ntoskrnl/ob/object.c +++ b/reactos/ntoskrnl/ob/object.c @@ -1,4 +1,4 @@ -/* $Id: object.c,v 1.45 2002/03/01 00:47:40 ekohl Exp $ +/* $Id: object.c,v 1.46 2002/03/05 00:19:28 ekohl Exp $ * * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS kernel @@ -530,7 +530,7 @@ ObfDereferenceObject(IN PVOID Object) * ObGetObjectPointerCount@4 * * DESCRIPTION - * Retrieves the reference count of the given object. + * Retrieves the pointer(reference) count of the given object. * * ARGUMENTS * ObjectBody = Body of the object. @@ -549,4 +549,29 @@ ObGetObjectPointerCount(PVOID Object) return(Header->RefCount); } + +/********************************************************************** + * NAME INTERNAL + * ObGetObjectHandleCount@4 + * + * DESCRIPTION + * Retrieves the handle count of the given object. + * + * ARGUMENTS + * ObjectBody = Body of the object. + * + * RETURN VALUE + * Reference count. + */ +ULONG +ObGetObjectHandleCount(PVOID Object) +{ + POBJECT_HEADER Header; + + assert(Object); + Header = BODY_TO_HEADER(Object); + + return(Header->HandleCount); +} + /* EOF */ diff --git a/reactos/ntoskrnl/ps/create.c b/reactos/ntoskrnl/ps/create.c index 3ce1ba1a485..14dc4220fb6 100644 --- a/reactos/ntoskrnl/ps/create.c +++ b/reactos/ntoskrnl/ps/create.c @@ -1,4 +1,4 @@ -/* $Id: create.c,v 1.45 2002/02/20 20:15:07 ekohl Exp $ +/* $Id: create.c,v 1.46 2002/03/05 00:20:54 ekohl Exp $ * * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS kernel @@ -322,7 +322,7 @@ PiDeleteThread(PVOID ObjectBody) DPRINT("Process %x(%d)\n", Thread->ThreadsProcess, - ObGetReferenceCount(Thread->ThreadsProcess)); + ObGetObjectPointerCount(Thread->ThreadsProcess)); ObDereferenceObject(Thread->ThreadsProcess); Thread->ThreadsProcess = NULL; PiNrThreads--; @@ -337,10 +337,10 @@ PiCloseThread(PVOID ObjectBody, ULONG HandleCount) { DPRINT("PiCloseThread(ObjectBody %x)\n", ObjectBody); - DPRINT("ObGetReferenceCount(ObjectBody) %d " - "ObGetHandleCount(ObjectBody) %d\n", - ObGetReferenceCount(ObjectBody), - ObGetHandleCount(ObjectBody)); + DPRINT("ObGetObjectPointerCount(ObjectBody) %d " + "ObGetObjectHandleCount(ObjectBody) %d\n", + ObGetObjectPointerCount(ObjectBody), + ObGetObjectHandleCount(ObjectBody)); } NTSTATUS