[PATCH 2/4] ntoskrnl: Implement ObGetObjectPointerCount.

Derek Lesho dlesho at codeweavers.com
Mon May 3 11:46:55 CDT 2021


Signed-off-by: Derek Lesho <dlesho at codeweavers.com>
---
 dlls/ntoskrnl.exe/ntoskrnl.c        | 6 ++++++
 dlls/ntoskrnl.exe/ntoskrnl.exe.spec | 1 +
 include/ddk/wdm.h                   | 1 +
 3 files changed, 8 insertions(+)

diff --git a/dlls/ntoskrnl.exe/ntoskrnl.c b/dlls/ntoskrnl.exe/ntoskrnl.c
index 0580231d8e3..5b84c626547 100644
--- a/dlls/ntoskrnl.exe/ntoskrnl.c
+++ b/dlls/ntoskrnl.exe/ntoskrnl.c
@@ -243,6 +243,12 @@ void ObReferenceObject( void *obj )
     LeaveCriticalSection( &obref_cs );
 }
 
+ULONG WINAPI ObGetObjectPointerCount( void *object )
+{
+    struct object_header *header = (struct object_header *)object - 1;
+    return header->ref;
+}
+
 /***********************************************************************
  *           ObGetObjectType (NTOSKRNL.EXE.@)
  */
diff --git a/dlls/ntoskrnl.exe/ntoskrnl.exe.spec b/dlls/ntoskrnl.exe/ntoskrnl.exe.spec
index 2e5e2e6e11b..6426bc3968a 100644
--- a/dlls/ntoskrnl.exe/ntoskrnl.exe.spec
+++ b/dlls/ntoskrnl.exe/ntoskrnl.exe.spec
@@ -834,6 +834,7 @@
 @ stdcall ObGetFilterVersion()
 @ stub ObGetObjectSecurity
 @ stdcall ObGetObjectType(ptr)
+@ stdcall ObGetObjectPointerCount(ptr)
 @ stub ObInsertObject
 @ stub ObLogSecurityDescriptor
 @ stub ObMakeTemporaryObject
diff --git a/include/ddk/wdm.h b/include/ddk/wdm.h
index 51097bfe3ab..1e7ce63f776 100644
--- a/include/ddk/wdm.h
+++ b/include/ddk/wdm.h
@@ -1802,6 +1802,7 @@ static inline void *MmGetSystemAddressForMdlSafe(MDL *mdl, ULONG priority)
 void    FASTCALL ObfReferenceObject(void*);
 void      WINAPI ObDereferenceObject(void*);
 USHORT    WINAPI ObGetFilterVersion(void);
+ULONG     WINAPI ObGetObjectPointerCount(void*);
 NTSTATUS  WINAPI ObRegisterCallbacks(POB_CALLBACK_REGISTRATION, void**);
 NTSTATUS  WINAPI ObReferenceObjectByHandle(HANDLE,ACCESS_MASK,POBJECT_TYPE,KPROCESSOR_MODE,PVOID*,POBJECT_HANDLE_INFORMATION);
 NTSTATUS  WINAPI ObReferenceObjectByName(UNICODE_STRING*,ULONG,ACCESS_STATE*,ACCESS_MASK,POBJECT_TYPE,KPROCESSOR_MODE,void*,void**);
-- 
2.31.1




More information about the wine-devel mailing list