Module: wine
Branch: master
Commit: 7bc99ae1254f467a23b46756dce40a15494f0758
URL:
https://source.winehq.org/git/wine.git/?a=commit;h=7bc99ae1254f467a23b46756…
Author: Paul Gofman <pgofman(a)codeweavers.com>
Date: Fri May 29 10:53:06 2020 +0300
ntoskrnl.exe: Add stub for ExRegisterCallback() function.
Signed-off-by: Paul Gofman <pgofman(a)codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard(a)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 09d4796ad4..f0892141c2 100644
--- a/dlls/ntoskrnl.exe/ntoskrnl.c
+++ b/dlls/ntoskrnl.exe/ntoskrnl.c
@@ -2062,6 +2062,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.@)
@@ -3046,6 +3054,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 dd7ff73bee..dcec2375df 100644
--- a/dlls/ntoskrnl.exe/ntoskrnl.exe.spec
+++ b/dlls/ntoskrnl.exe/ntoskrnl.exe.spec
@@ -183,7 +183,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 a67377352d..282ea14b77 100644
--- a/include/ddk/wdm.h
+++ b/include/ddk/wdm.h
@@ -1356,6 +1356,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
@@ -1627,6 +1628,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);