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:
parent
ebaea5e9f1
commit
5d469d9188
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue