required for mrac anti cheat
-- v14: ntoskrnl.exe: Add KeDeregisterProcessorChangeCallback stub. ntoskrnl.exe: Add KeRegisterProcessorChangeCallback stub.
From: Etaash Mathamsetty etaash.mathamsetty@gmail.com
--- dlls/ntoskrnl.exe/ntoskrnl.c | 9 +++++++++ dlls/ntoskrnl.exe/ntoskrnl.exe.spec | 1 + include/ddk/wdm.h | 16 ++++++++++++++++ 3 files changed, 26 insertions(+)
diff --git a/dlls/ntoskrnl.exe/ntoskrnl.c b/dlls/ntoskrnl.exe/ntoskrnl.c index 66c39996d59..b3fd6d2c274 100644 --- a/dlls/ntoskrnl.exe/ntoskrnl.c +++ b/dlls/ntoskrnl.exe/ntoskrnl.c @@ -3653,6 +3653,15 @@ NTSTATUS WINAPI CmUnRegisterCallback(LARGE_INTEGER cookie) return STATUS_NOT_IMPLEMENTED; }
+/*********************************************************************** + * KeRegisterProcessorChangeCallback (NTOSKRNL.EXE.@) + */ +void * WINAPI KeRegisterProcessorChangeCallback(PROCESSOR_CALLBACK_FUNCTION *function, void *context, ULONG flags) +{ + FIXME("(%p %p %lu) stub\n", function, context, flags); + return (void *)0xdeadbeef; +} + /*********************************************************************** * IoAttachDevice (NTOSKRNL.EXE.@) */ diff --git a/dlls/ntoskrnl.exe/ntoskrnl.exe.spec b/dlls/ntoskrnl.exe/ntoskrnl.exe.spec index 0a484829ca3..97004c4f1fc 100644 --- a/dlls/ntoskrnl.exe/ntoskrnl.exe.spec +++ b/dlls/ntoskrnl.exe/ntoskrnl.exe.spec @@ -620,6 +620,7 @@ @ stub KeReadStateTimer @ stub KeRegisterBugCheckCallback @ stub KeRegisterBugCheckReasonCallback +@ stdcall KeRegisterProcessorChangeCallback(ptr ptr long) @ stub KeReleaseInterruptSpinLock @ stub KeReleaseMutant @ stdcall KeReleaseMutex(ptr long) diff --git a/include/ddk/wdm.h b/include/ddk/wdm.h index 321b07b84fa..6e627f7b1f9 100644 --- a/include/ddk/wdm.h +++ b/include/ddk/wdm.h @@ -1599,6 +1599,22 @@ typedef enum _WORK_QUEUE_TYPE {
typedef void (WINAPI *PIO_WORKITEM_ROUTINE)(PDEVICE_OBJECT,void*);
+typedef enum _KE_PROCESSOR_CHANGE_NOTIFY_STATE { + KeProcessorAddStartNotify = 0, + KeProcessorAddCompleteNotify, + KeProcessorAddFailureNotify +} KE_PROCESSOR_CHANGE_NOTIFY_STATE; + +typedef struct _KE_PROCESSOR_CHANGE_NOTIFY_CONTEXT { + KE_PROCESSOR_CHANGE_NOTIFY_STATE State; + ULONG NtNumber; + NTSTATUS Status; + PROCESSOR_NUMBER ProcNumber; +} KE_PROCESSOR_CHANGE_NOTIFY_CONTEXT, *PKE_PROCESSOR_CHANGE_NOTIFY_CONTEXT; + +typedef void (WINAPI PROCESSOR_CALLBACK_FUNCTION)(PVOID,PKE_PROCESSOR_CHANGE_NOTIFY_CONTEXT,NTSTATUS *); +typedef PROCESSOR_CALLBACK_FUNCTION *PPROCESSOR_CALLBACK_FUNCTION; + NTSTATUS WINAPI ObCloseHandle(IN HANDLE handle);
#ifdef NONAMELESSUNION
From: Etaash Mathamsetty etaash.mathamsetty@gmail.com
--- dlls/ntoskrnl.exe/ntoskrnl.c | 8 ++++++++ dlls/ntoskrnl.exe/ntoskrnl.exe.spec | 1 + 2 files changed, 9 insertions(+)
diff --git a/dlls/ntoskrnl.exe/ntoskrnl.c b/dlls/ntoskrnl.exe/ntoskrnl.c index b3fd6d2c274..f01697ec242 100644 --- a/dlls/ntoskrnl.exe/ntoskrnl.c +++ b/dlls/ntoskrnl.exe/ntoskrnl.c @@ -3662,6 +3662,14 @@ void * WINAPI KeRegisterProcessorChangeCallback(PROCESSOR_CALLBACK_FUNCTION *fun return (void *)0xdeadbeef; }
+/*********************************************************************** + * KeDeregisterProcessorChangeCallback (NTOSKRNL.EXE.@) + */ +void WINAPI KeDeregisterProcessorChangeCallback(void *handle) +{ + FIXME("%p stub\n", handle); +} + /*********************************************************************** * IoAttachDevice (NTOSKRNL.EXE.@) */ diff --git a/dlls/ntoskrnl.exe/ntoskrnl.exe.spec b/dlls/ntoskrnl.exe/ntoskrnl.exe.spec index 97004c4f1fc..d670afcd081 100644 --- a/dlls/ntoskrnl.exe/ntoskrnl.exe.spec +++ b/dlls/ntoskrnl.exe/ntoskrnl.exe.spec @@ -621,6 +621,7 @@ @ stub KeRegisterBugCheckCallback @ stub KeRegisterBugCheckReasonCallback @ stdcall KeRegisterProcessorChangeCallback(ptr ptr long) +@ stdcall KeDeregisterProcessorChangeCallback(ptr) @ stub KeReleaseInterruptSpinLock @ stub KeReleaseMutant @ stdcall KeReleaseMutex(ptr long)