From ee283ecaa51e529afbb20f322743947a0841c744 Mon Sep 17 00:00:00 2001 From: PatrickvL Date: Mon, 6 Feb 2017 13:54:50 +0100 Subject: [PATCH] Kernel : Added ObReferenceObjectByPointer stub --- import/OpenXDK/include/xboxkrnl/ob.h | 11 ++++++++++- src/CxbxKrnl/EmuKrnlOb.cpp | 21 +++++++++++++++++++++ src/CxbxKrnl/KernelThunk.cpp | 2 +- 3 files changed, 32 insertions(+), 2 deletions(-) diff --git a/import/OpenXDK/include/xboxkrnl/ob.h b/import/OpenXDK/include/xboxkrnl/ob.h index 3d8b6c6a4..1a8816a07 100644 --- a/import/OpenXDK/include/xboxkrnl/ob.h +++ b/import/OpenXDK/include/xboxkrnl/ob.h @@ -95,7 +95,16 @@ XBSYSAPI EXPORTNUM(247) NTSTATUS NTAPI ObReferenceObjectByName OUT PVOID *Object ); -XBSYSAPI VOID *ObReferenceObjectByPointer; +// ****************************************************************** +// * 0x00F8 - ObReferenceObjectByPointer() +// ****************************************************************** +XBSYSAPI EXPORTNUM(248) NTSTATUS NTAPI ObReferenceObjectByPointer +( + IN PVOID Object, + IN POBJECT_TYPE ObjectType, + OUT PHANDLE Handle +); + XBSYSAPI EXPORTNUM(249) OBJECT_TYPE ObSymbolicLinkObjectType; XBSYSAPI EXPORTNUM(250) VOID FASTCALL ObfDereferenceObject diff --git a/src/CxbxKrnl/EmuKrnlOb.cpp b/src/CxbxKrnl/EmuKrnlOb.cpp index 80a2dc108..a41ac5a59 100644 --- a/src/CxbxKrnl/EmuKrnlOb.cpp +++ b/src/CxbxKrnl/EmuKrnlOb.cpp @@ -262,6 +262,27 @@ XBSYSAPI EXPORTNUM(247) xboxkrnl::NTSTATUS NTAPI xboxkrnl::ObReferenceObjectByNa RETURN(S_OK); } +// ****************************************************************** +// * 0x00F8 - ObReferenceObjectByPointer() +// ****************************************************************** +XBSYSAPI EXPORTNUM(248) xboxkrnl::NTSTATUS NTAPI xboxkrnl::ObReferenceObjectByPointer +( + IN PVOID Object, + IN POBJECT_TYPE ObjectType, + OUT PHANDLE Handle +) +{ + LOG_FUNC_BEGIN + LOG_FUNC_ARG(Object) + LOG_FUNC_ARG(ObjectType) + LOG_FUNC_ARG_OUT(Handle) + LOG_FUNC_END; + + LOG_UNIMPLEMENTED(); + + RETURN(S_OK); +} + // ****************************************************************** // * 0x00F9 - ObSymbolicLinkObjectType // ****************************************************************** diff --git a/src/CxbxKrnl/KernelThunk.cpp b/src/CxbxKrnl/KernelThunk.cpp index b6f19c782..9635dd7cb 100644 --- a/src/CxbxKrnl/KernelThunk.cpp +++ b/src/CxbxKrnl/KernelThunk.cpp @@ -315,7 +315,7 @@ extern "C" CXBXKRNL_API uint32 CxbxKrnl_KernelThunkTable[379] = (uint32)VARIABLE(&xboxkrnl::ObpObjectHandleTable), // 0x00F5 (245) (uint32)FUNC(&xboxkrnl::ObReferenceObjectByHandle), // 0x00F6 (246) (uint32)FUNC(&xboxkrnl::ObReferenceObjectByName), // 0x00F7 (247) - (uint32)PANIC(0x00F8), // 0x00F8 (248) ObReferenceObjectByPointer + (uint32)FUNC(&xboxkrnl::ObReferenceObjectByPointer), // 0x00F8 (248) (uint32)VARIABLE(&xboxkrnl::ObSymbolicLinkObjectType), // 0x00F9 (249) (uint32)FUNC(&xboxkrnl::ObfDereferenceObject), // 0x00FA (250) (uint32)PANIC(0x00FB), // 0x00FB (251) ObfReferenceObject