[PATCH] Added stub for ObReferenceObjectByHandle()

Jim Cameron jim_24601 at btinternet.com
Thu Aug 28 17:45:48 CDT 2008


---
 dlls/ntoskrnl.exe/ntoskrnl.c        |   14 ++++++++++++++
 dlls/ntoskrnl.exe/ntoskrnl.exe.spec |    2 +-
 include/ddk/wdm.h                   |    6 ++++++
 3 files changed, 21 insertions(+), 1 deletions(-)

diff --git a/dlls/ntoskrnl.exe/ntoskrnl.c b/dlls/ntoskrnl.exe/ntoskrnl.c
index 50fe450..d8d8d4f 100644
--- a/dlls/ntoskrnl.exe/ntoskrnl.c
+++ b/dlls/ntoskrnl.exe/ntoskrnl.c
@@ -778,6 +778,20 @@ void WINAPI MmResetDriverPaging(PVOID AddrInSection)
     TRACE("%p\n", AddrInSection);
 }
 
+
+ /***********************************************************************
+ *           ObReferenceObjectByHandle    (NTOSKRNL.EXE.@)
+ */
+NTSTATUS  WINAPI ObReferenceObjectByHandle( HANDLE obj, ACCESS_MASK access,
+					    POBJECT_TYPE type,
+					    KPROCESSOR_MODE mode, PVOID* ptr,
+					    POBJECT_HANDLE_INFORMATION info)
+{
+    FIXME( "stub: %p %x %p %d %p %p\n", obj, access, type, mode, ptr, info);
+    return STATUS_NOT_IMPLEMENTED; /* Homeworld 2 */
+}
+
+
 /***********************************************************************
  *           PsCreateSystemThread   (NTOSKRNL.EXE.@)
  */
diff --git a/dlls/ntoskrnl.exe/ntoskrnl.exe.spec b/dlls/ntoskrnl.exe/ntoskrnl.exe.spec
index 4fa636e..3ac035e 100644
--- a/dlls/ntoskrnl.exe/ntoskrnl.exe.spec
+++ b/dlls/ntoskrnl.exe/ntoskrnl.exe.spec
@@ -809,7 +809,7 @@
 @ stub ObOpenObjectByPointer
 @ stub ObQueryNameString
 @ stub ObQueryObjectAuditingByHandle
-@ stub ObReferenceObjectByHandle
+@ stdcall ObReferenceObjectByHandle(long long ptr long ptr ptr)
 @ stub ObReferenceObjectByName
 @ stub ObReferenceObjectByPointer
 @ stub ObReferenceSecurityDescriptor
diff --git a/include/ddk/wdm.h b/include/ddk/wdm.h
index 895c6b1..71c8b97 100644
--- a/include/ddk/wdm.h
+++ b/include/ddk/wdm.h
@@ -907,6 +907,10 @@ typedef struct _KUSER_SHARED_DATA {
     } DUMMYUNIONNAME;
 } KSHARED_USER_DATA, *PKSHARED_USER_DATA;
 
+/* This is an opaque type in Windows... */
+typedef struct _OBJECT_TYPE *POBJECT_TYPE;
+typedef struct _OBJECT_HANDLE_INFORMATION *POBJECT_HANDLE_INFORMATION;
+
 typedef VOID (*PDRIVER_REINITIALIZE) (PDRIVER_OBJECT,PVOID,ULONG);
 
 NTSTATUS WINAPI ObCloseHandle(IN HANDLE handle);
@@ -955,6 +959,8 @@ ULONG     WINAPI KeQueryTimeIncrement(void);
 PVOID     WINAPI MmAllocateNonCachedMemory(SIZE_T);
 void      WINAPI MmFreeNonCachedMemory(PVOID,SIZE_T);
 
+NTSTATUS  WINAPI ObReferenceObjectByHandle(HANDLE,ACCESS_MASK,POBJECT_TYPE,KPROCESSOR_MODE,PVOID*,POBJECT_HANDLE_INFORMATION);
+
 NTSTATUS  WINAPI PsCreateSystemThread(PHANDLE,ULONG,POBJECT_ATTRIBUTES,HANDLE,PCLIENT_ID,PKSTART_ROUTINE,PVOID);
 #define          PsGetCurrentProcess() IoGetCurrentProcess()
 #define          PsGetCurrentThread() ((PETHREAD)KeGetCurrentThread())
-- 
1.5.4.3


--0-939870500-1220389540=:79028--



More information about the wine-patches mailing list