Add stubs for ObReferenceObjectByHandle, ObDereferenceObject and KeSetBasePriority

Crash Bandicoot now sits on the loading screen forever, but it doesn't crash, so that's progress, I guess
This commit is contained in:
Luke Usher 2016-11-29 06:58:30 +00:00
parent ebaea5e9f1
commit 5d469d9188
5 changed files with 66 additions and 10 deletions

View File

@ -167,7 +167,7 @@ XBSYSAPI VOID *KeRundownQueue;
XBSYSAPI VOID *KeSaveFloatingPointState;
//XBSYSAPI VOID *KeSetBasePriorityThread;
XBSYSAPI EXPORTNUM(143) BOOLEAN NTAPI KeSetBasePriorityThread
XBSYSAPI EXPORTNUM(143) LONG NTAPI KeSetBasePriorityThread
(
IN PKTHREAD Thread,
IN PVOID Priority

View File

@ -20,17 +20,23 @@ XBSYSAPI VOID *ObOpenObjectByName;
XBSYSAPI VOID *ObOpenObjectByPointer;
XBSYSAPI EXPORTNUM(245) DWORD ObpObjectHandleTable[1];
XBSYSAPI EXPORTNUM(246) BOOLEAN NTAPI ObReferenceObjectByHandle
( unsigned int a,
unsigned int b,
unsigned int c
XBSYSAPI EXPORTNUM(246) NTSTATUS NTAPI ObReferenceObjectByHandle
(
IN HANDLE Handle,
IN POBJECT_TYPE ObjectType OPTIONAL,
OUT PVOID *ReturnedObject
);
XBSYSAPI VOID *ObReferenceObjectByName;
XBSYSAPI VOID *ObReferenceObjectByPointer;
XBSYSAPI EXPORTNUM(249) POBJECT_TYPE ObSymbolicLinkObjectType;
XBSYSAPI VOID *ObfDereferenceObject;
XBSYSAPI EXPORTNUM(250) VOID __fastcall ObfDereferenceObject
(
IN PVOID Object
);
XBSYSAPI VOID *ObfReferenceObject;
#endif

View File

@ -321,6 +321,26 @@ XBSYSAPI EXPORTNUM(129) xboxkrnl::UCHAR NTAPI xboxkrnl::KeRaiseIrqlToDpcLevel()
RETURN(0);
}
// ******************************************************************
// * 0x008F - KeSetBasePriorityThread
// ******************************************************************
XBSYSAPI EXPORTNUM(143) xboxkrnl::LONG NTAPI xboxkrnl::KeSetBasePriorityThread
(
IN PKTHREAD Thread,
IN PVOID Priority
)
{
LOG_FUNC_BEGIN
LOG_FUNC_ARG_OUT(Thread)
LOG_FUNC_ARG_OUT(Priority)
LOG_FUNC_END;
LOG_UNIMPLEMENTED();
RETURN(1);
}
// ******************************************************************
// * 0x0095 - KeSetTimer
// ******************************************************************
@ -478,3 +498,4 @@ XBSYSAPI EXPORTNUM(159) xboxkrnl::NTSTATUS xboxkrnl::KeWaitForSingleObject
RETURN(ret);
}

View File

@ -55,3 +55,32 @@ XBSYSAPI EXPORTNUM(245) xboxkrnl::DWORD xboxkrnl::ObpObjectHandleTable[1] = {};
// TODO : What should we initialize this to?
XBSYSAPI EXPORTNUM(249) xboxkrnl::POBJECT_TYPE xboxkrnl::ObSymbolicLinkObjectType = NULL;
XBSYSAPI EXPORTNUM(246) xboxkrnl::NTSTATUS NTAPI xboxkrnl::ObReferenceObjectByHandle
(
IN HANDLE Handle,
IN POBJECT_TYPE ObjectType OPTIONAL,
OUT PVOID *ReturnedObject
)
{
LOG_FUNC_BEGIN
LOG_FUNC_ARG(Handle)
LOG_FUNC_ARG_OUT(ObjectType)
LOG_FUNC_ARG_OUT(ReturnedObject)
LOG_FUNC_END;
LOG_UNIMPLEMENTED();
// This is probably incorrect
*ReturnedObject = Handle;
RETURN(STATUS_SUCCESS);
}
XBSYSAPI EXPORTNUM(250) VOID __fastcall xboxkrnl::ObfDereferenceObject
(
IN PVOID Object
)
{
LOG_FUNC_ONE_ARG_OUT(Object);
LOG_UNIMPLEMENTED();
}

View File

@ -175,7 +175,7 @@ extern "C" CXBXKRNL_API uint32 CxbxKrnl_KernelThunkTable[379] =
(uint32)PANIC(0x006C), // 0x006C (108) KeInitializeEvent
(uint32)FUNC(&xboxkrnl::KeInitializeInterrupt), // 0x006D (109)
(uint32)PANIC(0x006E), // 0x006E (110) KeInitializeMutant
(uint32)PANIC(0x006F), // 0x006F (111) KeInitializeQueue
(uint32)PANIC(0x006F), // 0x006F (111) KeInitializeQueue
(uint32)PANIC(0x0070), // 0x0070 (112) KeInitializeSemaphore
(uint32)FUNC(&xboxkrnl::KeInitializeTimerEx), // 0x0071 (113)
(uint32)PANIC(0x0072), // 0x0072 (114) KeInsertByKeyDeviceQueue
@ -207,7 +207,7 @@ extern "C" CXBXKRNL_API uint32 CxbxKrnl_KernelThunkTable[379] =
(uint32)PANIC(0x008C), // 0x008C (140) KeResumeThread
(uint32)PANIC(0x008D), // 0x008D (141) KeRundownQueue
(uint32)PANIC(0x008E), // 0x008E (142) KeSaveFloatingPointState
(uint32)PANIC(0x008F), // 0x008F (143) KeSetBasePriorityThread
(uint32)FUNC(&xboxkrnl::KeSetBasePriorityThread), // 0x008F (143)
(uint32)PANIC(0x0090), // 0x0090 (144) KeSetDisableBoostThread
(uint32)PANIC(0x0091), // 0x0091 (145) KeSetEvent
(uint32)PANIC(0x0092), // 0x0092 (146) KeSetEventBoostPriority
@ -310,11 +310,11 @@ extern "C" CXBXKRNL_API uint32 CxbxKrnl_KernelThunkTable[379] =
(uint32)PANIC(0x00F3), // 0x00F3 (243) ObOpenObjectByName
(uint32)PANIC(0x00F4), // 0x00F4 (244) ObOpenObjectByPointer
(uint32)VARIABLE(&xboxkrnl::ObpObjectHandleTable), // 0x00F5 (245)
(uint32)PANIC(0x00F6), // 0x00F6 (246) ObReferenceObjectByHandle
(uint32)FUNC(&xboxkrnl::ObReferenceObjectByHandle), // 0x00F6 (246)
(uint32)PANIC(0x00F7), // 0x00F7 (247) ObReferenceObjectByName
(uint32)PANIC(0x00F8), // 0x00F8 (248) ObReferenceObjectByPointer
(uint32)VARIABLE(&xboxkrnl::ObSymbolicLinkObjectType), // 0x00F9 (249)
(uint32)PANIC(0x00FA), // 0x00FA (250) ObfDereferenceObject
(uint32)FUNC(&xboxkrnl::ObfDereferenceObject), // 0x00FA (250)
(uint32)PANIC(0x00FB), // 0x00FB (251) ObfReferenceObject
(uint32)PANIC(0x00FC), // 0x00FC (252) PhyGetLinkState
(uint32)PANIC(0x00FD), // 0x00FD (253) PhyInitialize