Merge pull request #496 from LukeUsher/xboxkrnl-signatures

Xboxkrnl signatures
This commit is contained in:
PatrickvL 2017-07-07 20:26:18 +02:00 committed by GitHub
commit 562e41bc16
9 changed files with 486 additions and 53 deletions

View File

@ -90,8 +90,7 @@ typedef struct {
LIST_ENTRY ListEntry;
} HAL_SHUTDOWN_REGISTRATION, *PHAL_SHUTDOWN_REGISTRATION;
// TODO : NTAPI or FASTCALL ?
XBSYSAPI EXPORTNUM(47) VOID HalRegisterShutdownNotification(
XBSYSAPI EXPORTNUM(47) VOID NTAPI HalRegisterShutdownNotification(
IN PHAL_SHUTDOWN_REGISTRATION ShutdownRegistration,
IN BOOLEAN Register
);
@ -108,7 +107,7 @@ XBSYSAPI EXPORTNUM(46) VOID FASTCALL HalRequestSoftwareInterrupt
// * Reboot / Shutdown / Etc
// *
// ******************************************************************
XBSYSAPI EXPORTNUM(49) VOID DECLSPEC_NORETURN HalReturnToFirmware
XBSYSAPI EXPORTNUM(49) VOID DECLSPEC_NORETURN NTAPI HalReturnToFirmware
(
RETURN_FIRMWARE Routine
);

View File

@ -34,6 +34,8 @@ XBSYSAPI EXPORTNUM(93) NTSTATUS NTAPI KeAlertThread
// ******************************************************************
XBSYSAPI EXPORTNUM(94) NTSTATUS NTAPI KeBoostPriorityThread
(
IN PKTHREAD Thread,
IN KPRIORITY Increment
);
// ******************************************************************
@ -122,7 +124,13 @@ XBSYSAPI EXPORTNUM(105) VOID NTAPI KeInitializeApc
IN PVOID NormalContext OPTIONAL
);
XBSYSAPI VOID *KeInitializeDeviceQueue;
// ******************************************************************
// * 0x006A - KeInitializeDeviceQueue()
// ******************************************************************
XBSYSAPI EXPORTNUM(106) VOID NTAPI KeInitializeDeviceQueue
(
OUT PKDEVICE_QUEUE DeviceQueue
);
// ******************************************************************
// * 0x006B - KeInitializeDpc()
@ -195,11 +203,38 @@ XBSYSAPI EXPORTNUM(113) VOID NTAPI KeInitializeTimerEx
IN TIMER_TYPE Type
);
XBSYSAPI VOID *KeInsertByKeyDeviceQueue;
XBSYSAPI VOID *KeInsertDeviceQueue;
XBSYSAPI VOID *KeInsertHeadQueue;
XBSYSAPI VOID *KeInsertQueue;
XBSYSAPI VOID *KeInsertQueueApc;
XBSYSAPI EXPORTNUM(114) BOOLEAN NTAPI KeInsertByKeyDeviceQueue
(
IN PKDEVICE_QUEUE DeviceQueue,
IN PKDEVICE_QUEUE_ENTRY DeviceQueueEntry,
IN ULONG SortKey
);
XBSYSAPI EXPORTNUM(115) BOOLEAN NTAPI KeInsertDeviceQueue
(
IN PKDEVICE_QUEUE DeviceQueue,
IN PKDEVICE_QUEUE_ENTRY DeviceQueueEntry
);
XBSYSAPI EXPORTNUM(116) LONG NTAPI KeInsertHeadQueue
(
IN PRKQUEUE Queue,
IN PLIST_ENTRY Entry
);
XBSYSAPI EXPORTNUM(117) LONG NTAPI KeInsertQueue
(
IN PRKQUEUE Queue,
IN PLIST_ENTRY Entry
);
XBSYSAPI EXPORTNUM(118) BOOLEAN NTAPI KeInsertQueueApc
(
IN PRKAPC Apc,
IN PVOID SystemArgument1,
IN PVOID SystemArgument2,
IN KPRIORITY Increment
);
// ******************************************************************
// * 0x0077 - KeInsertQueueDpc()
@ -229,8 +264,17 @@ XBSYSAPI EXPORTNUM(122) VOID NTAPI KeLeaveCriticalRegion
VOID
);
XBSYSAPI VOID *KePulseEvent;
XBSYSAPI VOID *KeQueryBasePriorityThread;
XBSYSAPI EXPORTNUM(123) LONG NTAPI KePulseEvent
(
IN PRKEVENT Event,
IN KPRIORITY Increment,
IN BOOLEAN Wait
);
XBSYSAPI EXPORTNUM(124) LONG NTAPI KeQueryBasePriorityThread
(
IN PKTHREAD Thread
);
// ******************************************************************
// * 0x007D - KeQueryInterruptTime()
@ -265,12 +309,46 @@ XBSYSAPI EXPORTNUM(129) UCHAR NTAPI KeRaiseIrqlToDpcLevel();
// ******************************************************************
XBSYSAPI EXPORTNUM(130) UCHAR NTAPI KeRaiseIrqlToSynchLevel();
XBSYSAPI VOID *KeReleaseMutant;
XBSYSAPI VOID *KeReleaseSemaphore;
XBSYSAPI VOID *KeRemoveByKeyDeviceQueue;
XBSYSAPI VOID *KeRemoveDeviceQueue;
XBSYSAPI VOID *KeRemoveEntryDeviceQueue;
XBSYSAPI VOID *KeRemoveQueue;
XBSYSAPI EXPORTNUM(131) LONG NTAPI KeReleaseMutant
(
IN PRKMUTANT Mutant,
IN KPRIORITY Increment,
IN BOOLEAN Abandoned,
IN BOOLEAN Wait
);
XBSYSAPI EXPORTNUM(132) LONG NTAPI KeReleaseSemaphore
(
IN PRKSEMAPHORE Semaphore,
IN KPRIORITY Increment,
IN BOOLEAN Adjustment,
IN BOOLEAN Wait
);
XBSYSAPI EXPORTNUM(133) PKDEVICE_QUEUE_ENTRY NTAPI KeRemoveByKeyDeviceQueue
(
IN PKDEVICE_QUEUE DeviceQueue,
IN ULONG SortKey
);
XBSYSAPI EXPORTNUM(134) BOOLEAN NTAPI KeRemoveDeviceQueue
(
IN PKDEVICE_QUEUE DeviceQueue,
IN ULONG SortKey
);
XBSYSAPI EXPORTNUM(135) BOOLEAN NTAPI KeRemoveEntryDeviceQueue
(
IN PKDEVICE_QUEUE DeviceQueue,
IN PKDEVICE_QUEUE_ENTRY DeviceQueueEntry
);
XBSYSAPI EXPORTNUM(136) PLIST_ENTRY NTAPI KeRemoveQueue
(
IN PRKQUEUE Queue,
IN KPROCESSOR_MODE WaitMode,
IN PLARGE_INTEGER Timeout
);
// ******************************************************************
// * 0x0089 - KeRemoveQueueDpc()
@ -304,7 +382,10 @@ XBSYSAPI EXPORTNUM(140) ULONG NTAPI KeResumeThread
IN PKTHREAD Thread
);
XBSYSAPI VOID *KeRundownQueue;
XBSYSAPI EXPORTNUM(141) PLIST_ENTRY NTAPI KeRundownQueue
(
IN PRKQUEUE Queue
);
// ******************************************************************
// * 0x008E - KeSaveFloatingPointState()
@ -323,7 +404,11 @@ XBSYSAPI EXPORTNUM(143) LONG NTAPI KeSetBasePriorityThread
IN LONG Priority
);
XBSYSAPI VOID *KeSetDisableBoostThread;
XBSYSAPI EXPORTNUM(144) ULONG NTAPI KeSetDisableBoostThread
(
IN PKTHREAD Thread,
IN ULONG Disable
);
// ******************************************************************
// * 0x0091 - KeSetEvent()
@ -335,8 +420,17 @@ XBSYSAPI EXPORTNUM(145) LONG NTAPI KeSetEvent
IN BOOLEAN Wait
);
XBSYSAPI VOID *KeSetEventBoostPriority;
XBSYSAPI VOID *KeSetPriorityProcess;
XBSYSAPI EXPORTNUM(146) VOID NTAPI KeSetEventBoostPriority
(
IN PRKEVENT Event,
IN PRKTHREAD *Thread
);
XBSYSAPI EXPORTNUM(147) KPRIORITY NTAPI KeSetPriorityProcess
(
IN PKPROCESS Process,
IN KPRIORITY BasePriority
);
// ******************************************************************
// * 0x0094 - KeSetPriorityThread()
@ -420,7 +514,7 @@ XBSYSAPI EXPORTNUM(157) ULONG KeTimeIncrement;
// ******************************************************************
// * 0x009E - KeWaitForMultipleObjects()
// ******************************************************************
XBSYSAPI EXPORTNUM(158) NTSTATUS KeWaitForMultipleObjects
XBSYSAPI EXPORTNUM(158) NTSTATUS NTAPI KeWaitForMultipleObjects
(
IN ULONG Count,
IN PVOID Object[],
@ -435,7 +529,7 @@ XBSYSAPI EXPORTNUM(158) NTSTATUS KeWaitForMultipleObjects
// ******************************************************************
// * 0x009F - KeWaitForSingleObject()
// ******************************************************************
XBSYSAPI EXPORTNUM(159) NTSTATUS KeWaitForSingleObject
XBSYSAPI EXPORTNUM(159) NTSTATUS NTAPI KeWaitForSingleObject
(
IN PVOID Object,
IN KWAIT_REASON WaitReason,

View File

@ -94,7 +94,13 @@ XBSYSAPI EXPORTNUM(190) NTSTATUS NTAPI NtCreateFile
IN ULONG CreateOptions
);
XBSYSAPI VOID *NtCreateIoCompletion;
XBSYSAPI EXPORTNUM(191) NTSTATUS NTAPI NtCreateIoCompletion
(
OUT PHANDLE IoCompletionHandle,
IN ACCESS_MASK DesiredAccess,
IN POBJECT_ATTRIBUTES ObjectAttributes,
IN ULONG Count
);
// ******************************************************************
// * NtCreateMutant
@ -454,7 +460,7 @@ XBSYSAPI EXPORTNUM(228) NTSTATUS NTAPI NtSetSystemTime
// ******************************************************************
// * 0x00E5 - NtSetTimerEx()
// ******************************************************************
XBSYSAPI EXPORTNUM(229) NTSTATUS NtSetTimerEx
XBSYSAPI EXPORTNUM(229) NTSTATUS NTAPI NtSetTimerEx
(
IN HANDLE TimerHandle,
IN PLARGE_INTEGER DueTime,

View File

@ -1347,6 +1347,13 @@ typedef struct _KDEVICE_QUEUE
}
KDEVICE_QUEUE, *PKDEVICE_QUEUE, *RESTRICTED_POINTER PRKDEVICE_QUEUE;
typedef struct _KDEVICE_QUEUE_ENTRY
{
LIST_ENTRY DeviceListEntry;
ULONG SortKey;
BOOLEAN Inserted;
} KDEVICE_QUEUE_ENTRY, *PKDEVICE_QUEUE_ENTRY, *RESTRICTED_POINTER PRKDEVICE_QUEUE_ENTRY;
// ******************************************************************
// FILE_SEGMENT_ELEMENT
// ******************************************************************
@ -1789,7 +1796,7 @@ typedef struct _KQUEUE
ULONG MaximumCount;
LIST_ENTRY ThreadListHead;
}
KQUEUE, *PKQUEUE;
KQUEUE, *PKQUEUE, *RESTRICTED_POINTER PRKQUEUE;
// ******************************************************************
// * EXCEPTION_DISPOSITION
@ -1895,7 +1902,7 @@ typedef struct _KAPC
/* 0x20/32 */ PVOID SystemArgument1;
/* 0x24/36 */ PVOID SystemArgument2;
}
KAPC, *PKAPC;
KAPC, *PKAPC, *RESTRICTED_POINTER PRKAPC;
// ******************************************************************
// * KTHREAD
@ -1950,7 +1957,7 @@ typedef struct _KTHREAD
/* 0x104/260 */ LIST_ENTRY ThreadListEntry;
/* 0x10C/268 */ UCHAR _padding[4];
}
KTHREAD, *PKTHREAD;
KTHREAD, *PKTHREAD, *RESTRICTED_POINTER PRKTHREAD;
// ******************************************************************
// * ETHREAD

View File

@ -373,7 +373,7 @@ XBSYSAPI EXPORTNUM(46) xboxkrnl::VOID NTAPI xboxkrnl::HalReadWritePCISpace
// ******************************************************************
// * 0x002F - HalRegisterShutdownNotification()
// ******************************************************************
XBSYSAPI EXPORTNUM(47) xboxkrnl::VOID xboxkrnl::HalRegisterShutdownNotification
XBSYSAPI EXPORTNUM(47) xboxkrnl::VOID NTAPI xboxkrnl::HalRegisterShutdownNotification
(
IN PHAL_SHUTDOWN_REGISTRATION ShutdownRegistration,
IN BOOLEAN Register
@ -404,7 +404,7 @@ XBSYSAPI EXPORTNUM(48) xboxkrnl::VOID FASTCALL xboxkrnl::HalRequestSoftwareInter
// ******************************************************************
// * 0x0031 - HalReturnToFirmware()
// ******************************************************************
XBSYSAPI EXPORTNUM(49) xboxkrnl::VOID DECLSPEC_NORETURN xboxkrnl::HalReturnToFirmware
XBSYSAPI EXPORTNUM(49) xboxkrnl::VOID DECLSPEC_NORETURN NTAPI xboxkrnl::HalReturnToFirmware
(
RETURN_FIRMWARE Routine
)

View File

@ -341,9 +341,15 @@ XBSYSAPI EXPORTNUM(93) xboxkrnl::NTSTATUS NTAPI xboxkrnl::KeAlertThread
// Source:Dxbx
XBSYSAPI EXPORTNUM(94) xboxkrnl::NTSTATUS NTAPI xboxkrnl::KeBoostPriorityThread
(
IN PKTHREAD Thread,
IN KPRIORITY Increment
)
{
LOG_FUNC();
LOG_FUNC_BEGIN
LOG_FUNC_ARG(Thread);
LOG_FUNC_ARG(Increment);
LOG_FUNC_END;
LOG_UNIMPLEMENTED();
@ -586,6 +592,18 @@ XBSYSAPI EXPORTNUM(105) xboxkrnl::VOID NTAPI xboxkrnl::KeInitializeApc
}
}
// ******************************************************************
// * 0x006A - KeInitializeDeviceQueue()
// ******************************************************************
XBSYSAPI EXPORTNUM(106) xboxkrnl::VOID NTAPI xboxkrnl::KeInitializeDeviceQueue
(
OUT PKDEVICE_QUEUE DeviceQueue
)
{
LOG_FUNC_ONE_ARG_OUT(DeviceQueue);
LOG_UNIMPLEMENTED();
}
// ******************************************************************
// * 0x006B - KeInitializeDpc()
// ******************************************************************
@ -776,6 +794,92 @@ XBSYSAPI EXPORTNUM(113) xboxkrnl::VOID NTAPI xboxkrnl::KeInitializeTimerEx
Timer->Period = 0;
}
XBSYSAPI EXPORTNUM(114) xboxkrnl::BOOLEAN NTAPI xboxkrnl::KeInsertByKeyDeviceQueue
(
IN PKDEVICE_QUEUE DeviceQueue,
IN PKDEVICE_QUEUE_ENTRY DeviceQueueEntry,
IN ULONG SortKey
)
{
LOG_FUNC_BEGIN
LOG_FUNC_ARG(DeviceQueue)
LOG_FUNC_ARG(DeviceQueueEntry)
LOG_FUNC_ARG(SortKey)
LOG_FUNC_END;
LOG_UNIMPLEMENTED();
RETURN(STATUS_SUCCESS);
}
XBSYSAPI EXPORTNUM(115) xboxkrnl::BOOLEAN NTAPI xboxkrnl::KeInsertDeviceQueue
(
IN PKDEVICE_QUEUE DeviceQueue,
IN PKDEVICE_QUEUE_ENTRY DeviceQueueEntry
)
{
LOG_FUNC_BEGIN
LOG_FUNC_ARG(DeviceQueue)
LOG_FUNC_ARG(DeviceQueueEntry)
LOG_FUNC_END;
LOG_UNIMPLEMENTED();
RETURN(STATUS_SUCCESS);
}
XBSYSAPI EXPORTNUM(116) xboxkrnl::LONG NTAPI xboxkrnl::KeInsertHeadQueue
(
IN PRKQUEUE Queue,
IN PLIST_ENTRY Entry
)
{
LOG_FUNC_BEGIN
LOG_FUNC_ARG(Queue)
LOG_FUNC_ARG(Entry)
LOG_FUNC_END;
LOG_UNIMPLEMENTED();
RETURN(0);
}
XBSYSAPI EXPORTNUM(117) xboxkrnl::LONG NTAPI xboxkrnl::KeInsertQueue
(
IN PRKQUEUE Queue,
IN PLIST_ENTRY Entry
)
{
LOG_FUNC_BEGIN
LOG_FUNC_ARG(Queue)
LOG_FUNC_ARG(Entry)
LOG_FUNC_END;
LOG_UNIMPLEMENTED();
RETURN(0);
}
XBSYSAPI EXPORTNUM(118) xboxkrnl::BOOLEAN NTAPI xboxkrnl::KeInsertQueueApc
(
IN PRKAPC Apc,
IN PVOID SystemArgument1,
IN PVOID SystemArgument2,
IN KPRIORITY Increment
)
{
LOG_FUNC_BEGIN
LOG_FUNC_ARG(Apc)
LOG_FUNC_ARG(SystemArgument1)
LOG_FUNC_ARG(SystemArgument2)
LOG_FUNC_ARG(Increment)
LOG_FUNC_END;
LOG_UNIMPLEMENTED();
RETURN(TRUE);
}
// ******************************************************************
// * 0x0077 - KeInsertQueueDpc()
// ******************************************************************
@ -857,6 +961,36 @@ XBSYSAPI EXPORTNUM(122) xboxkrnl::VOID NTAPI xboxkrnl::KeLeaveCriticalRegion
LOG_UNIMPLEMENTED();
}
XBSYSAPI EXPORTNUM(123) xboxkrnl::LONG NTAPI xboxkrnl::KePulseEvent
(
IN PRKEVENT Event,
IN KPRIORITY Increment,
IN BOOLEAN Wait
)
{
LOG_FUNC_BEGIN
LOG_FUNC_ARG(Event)
LOG_FUNC_ARG(Increment)
LOG_FUNC_ARG(Wait)
LOG_FUNC_END;
LOG_UNIMPLEMENTED();
RETURN(0);
}
XBSYSAPI EXPORTNUM(124) xboxkrnl::LONG NTAPI xboxkrnl::KeQueryBasePriorityThread
(
IN PKTHREAD Thread
)
{
LOG_FUNC_ONE_ARG(Thread);
LOG_UNIMPLEMENTED();
RETURN(0);
}
// ******************************************************************
// * 0x007D - KeQueryInterruptTime()
// ******************************************************************
@ -988,6 +1122,113 @@ XBSYSAPI EXPORTNUM(130) xboxkrnl::UCHAR NTAPI xboxkrnl::KeRaiseIrqlToSynchLevel(
RETURN(0);
}
XBSYSAPI EXPORTNUM(131) xboxkrnl::LONG NTAPI xboxkrnl::KeReleaseMutant
(
IN PRKMUTANT Mutant,
IN KPRIORITY Increment,
IN BOOLEAN Abandoned,
IN BOOLEAN Wait
)
{
LOG_FUNC_BEGIN
LOG_FUNC_ARG(Mutant)
LOG_FUNC_ARG(Increment)
LOG_FUNC_ARG(Abandoned)
LOG_FUNC_ARG(Wait)
LOG_FUNC_END;
LOG_UNIMPLEMENTED();
RETURN(0);
}
XBSYSAPI EXPORTNUM(132) xboxkrnl::LONG NTAPI xboxkrnl::KeReleaseSemaphore
(
IN PRKSEMAPHORE Semaphore,
IN KPRIORITY Increment,
IN BOOLEAN Adjustment,
IN BOOLEAN Wait
)
{
LOG_FUNC_BEGIN
LOG_FUNC_ARG(Semaphore)
LOG_FUNC_ARG(Increment)
LOG_FUNC_ARG(Adjustment)
LOG_FUNC_ARG(Wait)
LOG_FUNC_END;
LOG_UNIMPLEMENTED();
RETURN(0);
}
XBSYSAPI EXPORTNUM(133) xboxkrnl::PKDEVICE_QUEUE_ENTRY NTAPI xboxkrnl::KeRemoveByKeyDeviceQueue
(
IN PKDEVICE_QUEUE DeviceQueue,
IN ULONG SortKey
)
{
LOG_FUNC_BEGIN
LOG_FUNC_ARG(DeviceQueue)
LOG_FUNC_ARG(SortKey)
LOG_FUNC_END;
LOG_UNIMPLEMENTED();
RETURN(NULL);
}
XBSYSAPI EXPORTNUM(134) xboxkrnl::BOOLEAN NTAPI xboxkrnl::KeRemoveDeviceQueue
(
IN PKDEVICE_QUEUE DeviceQueue,
IN ULONG SortKey
)
{
LOG_FUNC_BEGIN
LOG_FUNC_ARG(DeviceQueue)
LOG_FUNC_ARG(SortKey)
LOG_FUNC_END;
LOG_UNIMPLEMENTED();
RETURN(TRUE);
}
XBSYSAPI EXPORTNUM(135) xboxkrnl::BOOLEAN NTAPI xboxkrnl::KeRemoveEntryDeviceQueue
(
IN PKDEVICE_QUEUE DeviceQueue,
IN PKDEVICE_QUEUE_ENTRY DeviceQueueEntry
)
{
LOG_FUNC_BEGIN
LOG_FUNC_ARG(DeviceQueue)
LOG_FUNC_ARG(DeviceQueueEntry)
LOG_FUNC_END;
LOG_UNIMPLEMENTED();
RETURN(TRUE);
}
XBSYSAPI EXPORTNUM(136) xboxkrnl::PLIST_ENTRY NTAPI xboxkrnl::KeRemoveQueue
(
IN PRKQUEUE Queue,
IN KPROCESSOR_MODE WaitMode,
IN PLARGE_INTEGER Timeout
)
{
LOG_FUNC_BEGIN
LOG_FUNC_ARG(Queue)
LOG_FUNC_ARG(WaitMode)
LOG_FUNC_ARG(Timeout)
LOG_FUNC_END;
LOG_UNIMPLEMENTED();
RETURN(NULL);
}
// ******************************************************************
// * 0x0089 - KeRemoveQueueDpc()
// ******************************************************************
@ -1068,6 +1309,18 @@ XBSYSAPI EXPORTNUM(140) xboxkrnl::ULONG NTAPI xboxkrnl::KeResumeThread
RETURN(ret);
}
XBSYSAPI EXPORTNUM(141) xboxkrnl::PLIST_ENTRY NTAPI xboxkrnl::KeRundownQueue
(
IN PRKQUEUE Queue
)
{
LOG_FUNC_ONE_ARG(Queue);
LOG_UNIMPLEMENTED();
RETURN(NULL);
}
// ******************************************************************
// * 0x008E - KeSaveFloatingPointState()
// ******************************************************************
@ -1110,6 +1363,22 @@ XBSYSAPI EXPORTNUM(143) xboxkrnl::LONG NTAPI xboxkrnl::KeSetBasePriorityThread
RETURN(ret);
}
XBSYSAPI EXPORTNUM(144) xboxkrnl::ULONG NTAPI xboxkrnl::KeSetDisableBoostThread
(
IN PKTHREAD Thread,
IN ULONG Disable
)
{
LOG_FUNC_BEGIN
LOG_FUNC_ARG(Thread)
LOG_FUNC_ARG(Disable)
LOG_FUNC_END;
LOG_UNIMPLEMENTED();
RETURN(0);
}
// ******************************************************************
// * 0x0091 - KeSetEvent()
// ******************************************************************
@ -1133,6 +1402,37 @@ XBSYSAPI EXPORTNUM(145) xboxkrnl::LONG NTAPI xboxkrnl::KeSetEvent
RETURN(ret);
}
XBSYSAPI EXPORTNUM(146) xboxkrnl::VOID NTAPI xboxkrnl::KeSetEventBoostPriority
(
IN PRKEVENT Event,
IN PRKTHREAD *Thread
)
{
LOG_FUNC_BEGIN
LOG_FUNC_ARG(Event)
LOG_FUNC_ARG(Thread)
LOG_FUNC_END;
LOG_UNIMPLEMENTED();
}
XBSYSAPI EXPORTNUM(147) xboxkrnl::KPRIORITY NTAPI xboxkrnl::KeSetPriorityProcess
(
IN PKPROCESS Process,
IN KPRIORITY BasePriority
)
{
LOG_FUNC_BEGIN
LOG_FUNC_ARG(Process)
LOG_FUNC_ARG(BasePriority)
LOG_FUNC_END;
LOG_UNIMPLEMENTED();
RETURN(BasePriority);
}
// ******************************************************************
// * 0x0094 - KeSetPriorityThread()
// ******************************************************************
@ -1335,7 +1635,7 @@ XBSYSAPI EXPORTNUM(157) xboxkrnl::ULONG xboxkrnl::KeTimeIncrement = CLOCK_TIME_I
// ******************************************************************
// * 0x009E - KeWaitForMultipleObjects()
// ******************************************************************
XBSYSAPI EXPORTNUM(158) xboxkrnl::NTSTATUS xboxkrnl::KeWaitForMultipleObjects
XBSYSAPI EXPORTNUM(158) xboxkrnl::NTSTATUS NTAPI xboxkrnl::KeWaitForMultipleObjects
(
IN ULONG Count,
IN PVOID Object[],
@ -1402,7 +1702,7 @@ XBSYSAPI EXPORTNUM(158) xboxkrnl::NTSTATUS xboxkrnl::KeWaitForMultipleObjects
// ******************************************************************
// * 0x009F - KeWaitForSingleObject()
// ******************************************************************
XBSYSAPI EXPORTNUM(159) xboxkrnl::NTSTATUS xboxkrnl::KeWaitForSingleObject
XBSYSAPI EXPORTNUM(159) xboxkrnl::NTSTATUS NTAPI xboxkrnl::KeWaitForSingleObject
(
IN PVOID Object,
IN KWAIT_REASON WaitReason,

View File

@ -385,6 +385,26 @@ XBSYSAPI EXPORTNUM(190) xboxkrnl::NTSTATUS NTAPI xboxkrnl::NtCreateFile
0);
}
XBSYSAPI EXPORTNUM(191) xboxkrnl::NTSTATUS NTAPI xboxkrnl::NtCreateIoCompletion
(
OUT PHANDLE IoCompletionHandle,
IN ACCESS_MASK DesiredAccess,
IN POBJECT_ATTRIBUTES ObjectAttributes,
IN ULONG Count
)
{
LOG_FUNC_BEGIN
LOG_FUNC_ARG_OUT(IoCompletionHandle)
LOG_FUNC_ARG(DesiredAccess)
LOG_FUNC_ARG(ObjectAttributes)
LOG_FUNC_ARG(Count)
LOG_FUNC_END;
LOG_UNIMPLEMENTED();
RETURN(STATUS_NOT_IMPLEMENTED);
}
// ******************************************************************
// * 0x00C0 - NtCreateMutant()
// ******************************************************************
@ -1676,7 +1696,7 @@ XBSYSAPI EXPORTNUM(228) xboxkrnl::NTSTATUS NTAPI xboxkrnl::NtSetSystemTime
// ******************************************************************
// * 0x00E5 - NtSetTimerEx()
// ******************************************************************
XBSYSAPI EXPORTNUM(229) xboxkrnl::NTSTATUS xboxkrnl::NtSetTimerEx
XBSYSAPI EXPORTNUM(229) xboxkrnl::NTSTATUS NTAPI xboxkrnl::NtSetTimerEx
(
IN HANDLE TimerHandle,
IN PLARGE_INTEGER DueTime,

View File

@ -1045,6 +1045,13 @@ bool EmuX86_DecodeException(LPEXCEPTION_POINTERS e)
case I_WBINVD: // Write back and flush internal caches; initiate writing-back and flushing of external caches.
// We can safely ignore this
break;
case I_WRMSR:
// We do not emulate processor specific registers just yet
// Some titles attempt to manually set the TSC via this instruction
// This needs fixing eventually, but should be acceptible to ignore for now!
// Chase: Hollywood Stunt Driver hits this
EmuWarning("EmuX86: WRMSR instruction ignored");
break;
default:
goto unimplemented_opcode;
}

View File

@ -173,7 +173,7 @@ uint32 CxbxKrnl_KernelThunkTable[379] =
(uint32)FUNC(&xboxkrnl::KeGetCurrentIrql), // 0x0067 (103)
(uint32)FUNC(&xboxkrnl::KeGetCurrentThread), // 0x0068 (104)
(uint32)FUNC(&xboxkrnl::KeInitializeApc), // 0x0069 (105)
(uint32)PANIC(0x006A), // 0x006A (106) KeInitializeDeviceQueue
(uint32)FUNC(&xboxkrnl::KeInitializeDeviceQueue), // 0x006A (106)
(uint32)FUNC(&xboxkrnl::KeInitializeDpc), // 0x006B (107)
(uint32)FUNC(&xboxkrnl::KeInitializeEvent), // 0x006C (108)
(uint32)FUNC(&xboxkrnl::KeInitializeInterrupt), // 0x006D (109)
@ -181,40 +181,40 @@ uint32 CxbxKrnl_KernelThunkTable[379] =
(uint32)FUNC(&xboxkrnl::KeInitializeQueue), // 0x006F (111)
(uint32)FUNC(&xboxkrnl::KeInitializeSemaphore), // 0x0070 (112)
(uint32)FUNC(&xboxkrnl::KeInitializeTimerEx), // 0x0071 (113)
(uint32)PANIC(0x0072), // 0x0072 (114) KeInsertByKeyDeviceQueue
(uint32)PANIC(0x0073), // 0x0073 (115) KeInsertDeviceQueue
(uint32)PANIC(0x0074), // 0x0074 (116) KeInsertHeadQueue
(uint32)PANIC(0x0075), // 0x0075 (117) KeInsertQueue
(uint32)PANIC(0x0076), // 0x0076 (118) KeInsertQueueApc
(uint32)FUNC(&xboxkrnl::KeInsertByKeyDeviceQueue), // 0x0072 (114)
(uint32)FUNC(&xboxkrnl::KeInsertDeviceQueue), // 0x0073 (115)
(uint32)FUNC(&xboxkrnl::KeInsertHeadQueue), // 0x0074 (116)
(uint32)FUNC(&xboxkrnl::KeInsertQueue), // 0x0075 (117)
(uint32)FUNC(&xboxkrnl::KeInsertQueueApc), // 0x0076 (118)
(uint32)FUNC(&xboxkrnl::KeInsertQueueDpc), // 0x0077 (119)
(uint32)VARIABLE(0x0078), // 0x0078 (120) KeInterruptTime (Set by ConnectWindowsTimersToThunkTable)
(uint32)FUNC(&xboxkrnl::KeIsExecutingDpc), // 0x0079 (121)
(uint32)FUNC(&xboxkrnl::KeLeaveCriticalRegion), // 0x007A (122)
(uint32)PANIC(0x007B), // 0x007B (123) KePulseEvent
(uint32)PANIC(0x007C), // 0x007C (124) KeQueryBasePriorityThread
(uint32)FUNC(&xboxkrnl::KePulseEvent), // 0x007B (123)
(uint32)FUNC(&xboxkrnl::KeQueryBasePriorityThread), // 0x007C (124)
(uint32)FUNC(&xboxkrnl::KeQueryInterruptTime), // 0x007D (125)
(uint32)FUNC(&xboxkrnl::KeQueryPerformanceCounter), // 0x007E (126)
(uint32)FUNC(&xboxkrnl::KeQueryPerformanceFrequency), // 0x007F (127)
(uint32)FUNC(&xboxkrnl::KeQuerySystemTime), // 0x0080 (128)
(uint32)FUNC(&xboxkrnl::KeRaiseIrqlToDpcLevel), // 0x0081 (129)
(uint32)FUNC(&xboxkrnl::KeRaiseIrqlToSynchLevel), // 0x0082 (130)
(uint32)PANIC(0x0083), // 0x0083 (131) KeReleaseMutant
(uint32)PANIC(0x0084), // 0x0084 (132) KeReleaseSemaphore
(uint32)PANIC(0x0085), // 0x0085 (133) KeRemoveByKeyDeviceQueue
(uint32)PANIC(0x0086), // 0x0086 (134) KeRemoveDeviceQueue
(uint32)PANIC(0x0087), // 0x0087 (135) KeRemoveEntryDeviceQueue
(uint32)PANIC(0x0088), // 0x0088 (136) KeRemoveQueue
(uint32)FUNC(&xboxkrnl::KeReleaseMutant), // 0x0083 (131)
(uint32)FUNC(&xboxkrnl::KeReleaseSemaphore), // 0x0084 (132)
(uint32)FUNC(&xboxkrnl::KeRemoveByKeyDeviceQueue), // 0x0085 (133)
(uint32)FUNC(&xboxkrnl::KeRemoveDeviceQueue), // 0x0086 (134)
(uint32)FUNC(&xboxkrnl::KeRemoveEntryDeviceQueue), // 0x0087 (135)
(uint32)FUNC(&xboxkrnl::KeRemoveQueue), // 0x0088 (136)
(uint32)FUNC(&xboxkrnl::KeRemoveQueueDpc), // 0x0089 (137)
(uint32)FUNC(&xboxkrnl::KeResetEvent), // 0x008A (138)
(uint32)FUNC(&xboxkrnl::KeRestoreFloatingPointState), // 0x008B (139)
(uint32)FUNC(&xboxkrnl::KeResumeThread), // 0x008C (140)
(uint32)PANIC(0x008D), // 0x008D (141) KeRundownQueue
(uint32)FUNC(&xboxkrnl::KeRundownQueue), // 0x008D (141)
(uint32)FUNC(&xboxkrnl::KeSaveFloatingPointState), // 0x008E (142)
(uint32)FUNC(&xboxkrnl::KeSetBasePriorityThread), // 0x008F (143)
(uint32)PANIC(0x0090), // 0x0090 (144) KeSetDisableBoostThread
(uint32)FUNC(&xboxkrnl::KeSetDisableBoostThread), // 0x0090 (144)
(uint32)FUNC(&xboxkrnl::KeSetEvent), // 0x0091 (145)
(uint32)PANIC(0x0092), // 0x0092 (146) KeSetEventBoostPriority
(uint32)PANIC(0x0093), // 0x0093 (147) KeSetPriorityProcess
(uint32)FUNC(&xboxkrnl::KeSetEventBoostPriority), // 0x0092 (146)
(uint32)FUNC(&xboxkrnl::KeSetPriorityProcess), // 0x0093 (147)
(uint32)FUNC(&xboxkrnl::KeSetPriorityThread), // 0x0094 (148)
(uint32)FUNC(&xboxkrnl::KeSetTimer), // 0x0095 (149)
(uint32)FUNC(&xboxkrnl::KeSetTimerEx), // 0x0096 (150)
@ -258,7 +258,7 @@ uint32 CxbxKrnl_KernelThunkTable[379] =
(uint32)FUNC(&xboxkrnl::NtCreateDirectoryObject), // 0x00BC (188)
(uint32)FUNC(&xboxkrnl::NtCreateEvent), // 0x00BD (189)
(uint32)FUNC(&xboxkrnl::NtCreateFile), // 0x00BE (190)
(uint32)PANIC(0x00BF), // 0x00BF (191) NtCreateIoCompletion
(uint32)FUNC(&xboxkrnl::NtCreateIoCompletion), // 0x00BF (191)
(uint32)FUNC(&xboxkrnl::NtCreateMutant), // 0x00C0 (192)
(uint32)FUNC(&xboxkrnl::NtCreateSemaphore), // 0x00C1 (193)
(uint32)FUNC(&xboxkrnl::NtCreateTimer), // 0x00C2 (194)