required for mrac anti cheat
-- v10: 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 | 21 +++++++++++++++++++++ 3 files changed, 31 insertions(+)
diff --git a/dlls/ntoskrnl.exe/ntoskrnl.c b/dlls/ntoskrnl.exe/ntoskrnl.c index 66c39996d59..82af5a9527a 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.@) + */ +PVOID WINAPI KeRegisterProcessorChangeCallback(PPROCESSOR_CALLBACK_FUNCTION function, PVOID context, ULONG flags) +{ + FIXME("(%p %p %ld) stub\n", function, context, flags); + return (PVOID)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 bd6ddbd67c5..24e9d70a65f 100644 --- a/include/ddk/wdm.h +++ b/include/ddk/wdm.h @@ -29,6 +29,11 @@ #define POINTER_ALIGNMENT #endif
+#ifndef WINE_PNTSTATUS_DECLARED +#define WINE_PNTSTATUS_DECLARED +typedef NTSTATUS *PNTSTATUS; +#endif + /* FIXME: We suppose that page size is 4096 */ #undef PAGE_SIZE #undef PAGE_SHIFT @@ -1599,6 +1604,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,PNTSTATUS); +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 82af5a9527a..e893355839d 100644 --- a/dlls/ntoskrnl.exe/ntoskrnl.c +++ b/dlls/ntoskrnl.exe/ntoskrnl.c @@ -3662,6 +3662,14 @@ PVOID WINAPI KeRegisterProcessorChangeCallback(PPROCESSOR_CALLBACK_FUNCTION func return (PVOID)0xDEADBEEF; }
+/*********************************************************************** + * KeDeregisterProcessorChangeCallback (NTOSKRNL.EXE.@) + */ +VOID WINAPI KeDeregisterProcessorChangeCallback(PVOID 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)
Hi,
It looks like your patch introduced the new failures shown below. Please investigate and fix them before resubmitting your patch. If they are not new, fixing them anyway would help a lot. Otherwise please ask for the known failures list to be updated.
The tests also ran into some preexisting test failures. If you know how to fix them that would be helpful. See the TestBot job for the details:
The full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=126514
Your paranoid android.
=== debian11 (32 bit report) ===
ntoskrnl.exe: driver_pnp.c:737: Test failed: expected IRP_MN_REMOVE_DEVICE