From: Vijay Kiran Kamuju <infyquest@gmail.com> Subject: [PATCH 2/2] ntoskrnl.exe: Add KeIpiGenericCall stub function Message-Id: <CACfa+KKswHNLfpAPKfDHV3qiaXLaesew=JNrkVTJruCzLLwViA@mail.gmail.com> Date: Thu, 30 Apr 2020 11:32:40 +0200 Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=48989 Signed-off-by: Vijay Kiran Kamuju <infyquest@gmail.com> From d3a79d67444afa16aaea5d66739bb8bff6290dac Mon Sep 17 00:00:00 2001 From: Vijay Kiran Kamuju <infyquest@gmail.com> Date: Thu, 30 Apr 2020 11:27:41 +0200 Subject: [PATCH 2/2] ntoskrnl.exe: Add KeIpiGenericCall stub function Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=48989 Signed-off-by: Vijay Kiran Kamuju <infyquest@gmail.com> --- dlls/ntoskrnl.exe/ntoskrnl.c | 8 ++++++++ dlls/ntoskrnl.exe/ntoskrnl.exe.spec | 1 + include/ddk/wdm.h | 6 +++++- 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/dlls/ntoskrnl.exe/ntoskrnl.c b/dlls/ntoskrnl.exe/ntoskrnl.c index 01f25b5e2a..92b65f921d 100644 --- a/dlls/ntoskrnl.exe/ntoskrnl.c +++ b/dlls/ntoskrnl.exe/ntoskrnl.c @@ -2484,6 +2484,14 @@ NTSTATUS WINAPI KeExpandKernelStackAndCallout(PEXPAND_STACK_CALLOUT callout, voi { return KeExpandKernelStackAndCalloutEx(callout, parameter, size, TRUE, NULL); } +/*********************************************************************** + * KeIpiGenericCall (NTOSKRNL.EXE.@) + */ +ULONG_PTR WINAPI KeIpiGenericCall(PKIPI_BROADCAST_WORKER broadcast, ULONG_PTR context) +{ + FIXME("(%p %p)\n", broadcast, context); + return broadcast(context); +} /*********************************************************************** * IoUnregisterFileSystem (NTOSKRNL.EXE.@) diff --git a/dlls/ntoskrnl.exe/ntoskrnl.exe.spec b/dlls/ntoskrnl.exe/ntoskrnl.exe.spec index eeff447a31..040ee6523a 100644 --- a/dlls/ntoskrnl.exe/ntoskrnl.exe.spec +++ b/dlls/ntoskrnl.exe/ntoskrnl.exe.spec @@ -53,6 +53,7 @@ @ stdcall KeEnterGuardedRegion() @ stdcall KeExpandKernelStackAndCallout(ptr ptr long) @ stdcall KeExpandKernelStackAndCalloutEx(ptr ptr long long ptr) +@ stdcall KeIpiGenericCall(ptr ptr) @ stdcall KeLeaveGuardedRegion() @ stdcall -arch=!i386 KeReleaseInStackQueuedSpinLock(ptr) @ stdcall -fastcall KeReleaseInStackQueuedSpinLockFromDpcLevel(ptr) diff --git a/include/ddk/wdm.h b/include/ddk/wdm.h index b180d11556..90109918d1 100644 --- a/include/ddk/wdm.h +++ b/include/ddk/wdm.h @@ -1542,6 +1542,9 @@ static inline void IoMarkIrpPending(IRP *irp) #define SYMBOLIC_LINK_QUERY 0x0001 #define SYMBOLIC_LINK_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | 0x1) +typedef ULONG_PTR KIPI_BROADCAST_WORKER(ULONG_PTR); +typedef KIPI_BROADCAST_WORKER *PKIPI_BROADCAST_WORKER; + NTSTATUS WINAPI DbgQueryDebugFilterState(ULONG, ULONG); void FASTCALL ExAcquireFastMutexUnsafe(PFAST_MUTEX); BOOLEAN WINAPI ExAcquireResourceExclusiveLite(ERESOURCE*,BOOLEAN); @@ -1631,13 +1634,14 @@ void WINAPI KeClearEvent(PRKEVENT); NTSTATUS WINAPI KeDelayExecutionThread(KPROCESSOR_MODE,BOOLEAN,LARGE_INTEGER*); void WINAPI KeEnterCriticalRegion(void); PKTHREAD WINAPI KeGetCurrentThread(void); +void WINAPI KeLeaveCriticalRegion(void); void WINAPI KeInitializeEvent(PRKEVENT,EVENT_TYPE,BOOLEAN); void WINAPI KeInitializeMutex(PRKMUTEX,ULONG); void WINAPI KeInitializeSemaphore(PRKSEMAPHORE,LONG,LONG); void WINAPI KeInitializeSpinLock(KSPIN_LOCK*); void WINAPI KeInitializeTimerEx(PKTIMER,TIMER_TYPE); void WINAPI KeInitializeTimer(KTIMER*); -void WINAPI KeLeaveCriticalRegion(void); +ULONG_PTR WINAPI KeIpiGenericCall(PKIPI_BROADCAST_WORKER,ULONG_PTR); void WINAPI KeQuerySystemTime(LARGE_INTEGER*); void WINAPI KeQueryTickCount(LARGE_INTEGER*); ULONG WINAPI KeQueryTimeIncrement(void); -- 2.26.2