Paul Gofman : ntoskrnl.exe: Add stub for ExRegisterCallback() function.

Alexandre Julliard julliard at winehq.org
Tue Nov 10 13:46:21 CST 2020


Module: wine
Branch: stable
Commit: cdd4c607a654550462b0275d233638846edd78ea
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=cdd4c607a654550462b0275d233638846edd78ea

Author: Paul Gofman <pgofman at codeweavers.com>
Date:   Fri May 29 10:53:06 2020 +0300

ntoskrnl.exe: Add stub for ExRegisterCallback() function.

Signed-off-by: Paul Gofman <pgofman at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
(cherry picked from commit 7bc99ae1254f467a23b46756dce40a15494f0758)
Signed-off-by: Michael Stefaniuc <mstefani at winehq.org>

---

 dlls/ntoskrnl.exe/ntoskrnl.c        | 9 +++++++++
 dlls/ntoskrnl.exe/ntoskrnl.exe.spec | 2 +-
 include/ddk/wdm.h                   | 2 ++
 3 files changed, 12 insertions(+), 1 deletion(-)

diff --git a/dlls/ntoskrnl.exe/ntoskrnl.c b/dlls/ntoskrnl.exe/ntoskrnl.c
index ec0f376d6cd..5b99d4d17ec 100644
--- a/dlls/ntoskrnl.exe/ntoskrnl.c
+++ b/dlls/ntoskrnl.exe/ntoskrnl.c
@@ -2057,6 +2057,14 @@ NTSTATUS WINAPI ExCreateCallback(PCALLBACK_OBJECT *obj, POBJECT_ATTRIBUTES attr,
     return STATUS_SUCCESS;
 }
 
+void * WINAPI ExRegisterCallback(PCALLBACK_OBJECT callback_object,
+        PCALLBACK_FUNCTION callback_function, void *callback_context)
+{
+    FIXME("callback_object %p, callback_function %p, callback_context %p stub.\n",
+            callback_object, callback_function, callback_context);
+
+    return (void *)0xdeadbeef;
+}
 
 /***********************************************************************
  *           ExFreePool   (NTOSKRNL.EXE.@)
@@ -2993,6 +3001,7 @@ PVOID WINAPI MmGetSystemRoutineAddress(PUNICODE_STRING SystemRoutineName)
         if (!pFunc)
         {
            hMod = GetModuleHandleW( halW );
+
            if (hMod) pFunc = GetProcAddress( hMod, routineNameA.Buffer );
         }
         RtlFreeAnsiString( &routineNameA );
diff --git a/dlls/ntoskrnl.exe/ntoskrnl.exe.spec b/dlls/ntoskrnl.exe/ntoskrnl.exe.spec
index a39247811e5..b65857b82b8 100644
--- a/dlls/ntoskrnl.exe/ntoskrnl.exe.spec
+++ b/dlls/ntoskrnl.exe/ntoskrnl.exe.spec
@@ -180,7 +180,7 @@
 @ stub ExRaiseException
 @ stub ExRaiseHardError
 @ stub ExRaiseStatus
-@ stub ExRegisterCallback
+@ stdcall ExRegisterCallback(ptr ptr ptr)
 @ stub ExReinitializeResourceLite
 @ stdcall ExReleaseResourceForThreadLite(ptr long)
 @ extern ExSemaphoreObjectType
diff --git a/include/ddk/wdm.h b/include/ddk/wdm.h
index 5152a89842b..fbb9242cd5b 100644
--- a/include/ddk/wdm.h
+++ b/include/ddk/wdm.h
@@ -1296,6 +1296,7 @@ typedef void * (NTAPI *PALLOCATE_FUNCTION)(POOL_TYPE, SIZE_T, ULONG);
 typedef void * (NTAPI *PALLOCATE_FUNCTION_EX)(POOL_TYPE, SIZE_T, ULONG, PLOOKASIDE_LIST_EX);
 typedef void (NTAPI *PFREE_FUNCTION)(void *);
 typedef void (NTAPI *PFREE_FUNCTION_EX)(void *, PLOOKASIDE_LIST_EX);
+typedef void (NTAPI *PCALLBACK_FUNCTION)(void *, void *, void *);
 
 #ifdef _WIN64
 #define LOOKASIDE_ALIGN DECLSPEC_CACHEALIGN
@@ -1567,6 +1568,7 @@ PSLIST_ENTRY WINAPI ExInterlockedPushEntrySList(PSLIST_HEADER,PSLIST_ENTRY,PKSPI
 LIST_ENTRY * WINAPI ExInterlockedRemoveHeadList(LIST_ENTRY*,KSPIN_LOCK*);
 BOOLEAN   WINAPI ExIsResourceAcquiredExclusiveLite(ERESOURCE*);
 ULONG     WINAPI ExIsResourceAcquiredSharedLite(ERESOURCE*);
+void *    WINAPI ExRegisterCallback(PCALLBACK_OBJECT,PCALLBACK_FUNCTION,void*);
 void    FASTCALL ExReleaseFastMutexUnsafe(PFAST_MUTEX);
 void      WINAPI ExReleaseResourceForThreadLite(ERESOURCE*,ERESOURCE_THREAD);
 ULONG     WINAPI ExSetTimerResolution(ULONG,BOOLEAN);




More information about the wine-cvs mailing list