diff --git a/patches/ntoskrnl-Stubs/0015-ntoskrnl-Add-PsAcquireProcessExitSynchronization-PsR.patch b/patches/ntoskrnl-Stubs/0015-ntoskrnl-Add-PsAcquireProcessExitSynchronization-PsR.patch new file mode 100644 index 00000000..6890fc0e --- /dev/null +++ b/patches/ntoskrnl-Stubs/0015-ntoskrnl-Add-PsAcquireProcessExitSynchronization-PsR.patch @@ -0,0 +1,61 @@ +From 67b4323b39e2ec316ea698d9ecd9176b472983eb Mon Sep 17 00:00:00 2001 +From: Alistair Leslie-Hughes +Date: Wed, 28 Mar 2018 16:16:27 +1100 +Subject: [PATCH] ntoskrnl: Add + PsAcquireProcessExitSynchronization/PsReleaseProcessExitSynchronization stub + +Signed-off-by: Alistair Leslie-Hughes +--- + dlls/ntoskrnl.exe/ntoskrnl.c | 18 ++++++++++++++++++ + dlls/ntoskrnl.exe/ntoskrnl.exe.spec | 2 ++ + 2 files changed, 20 insertions(+) + +diff --git a/dlls/ntoskrnl.exe/ntoskrnl.c b/dlls/ntoskrnl.exe/ntoskrnl.c +index 58383e5..0ebe365 100644 +--- a/dlls/ntoskrnl.exe/ntoskrnl.c ++++ b/dlls/ntoskrnl.exe/ntoskrnl.c +@@ -3511,3 +3511,21 @@ __ASM_STDCALL_FUNC( _chkstk, 0, + __ASM_GLOBAL_FUNC( __chkstk, "lsl r4, r4, #2\n\t" + "bx lr" ) + #endif ++ ++/********************************************************************* ++ * PsAcquireProcessExitSynchronization (NTOSKRNL.@) ++*/ ++NTSTATUS WINAPI PsAcquireProcessExitSynchronization(PEPROCESS process) ++{ ++ FIXME("stub: %p\n", process); ++ ++ return STATUS_NOT_IMPLEMENTED; ++} ++ ++/********************************************************************* ++ * PsReleaseProcessExitSynchronization (NTOSKRNL.@) ++ */ ++void WINAPI PsReleaseProcessExitSynchronization(PEPROCESS process) ++{ ++ FIXME("stub: %p\n", process); ++} +diff --git a/dlls/ntoskrnl.exe/ntoskrnl.exe.spec b/dlls/ntoskrnl.exe/ntoskrnl.exe.spec +index de3307d..7b7b4d4 100644 +--- a/dlls/ntoskrnl.exe/ntoskrnl.exe.spec ++++ b/dlls/ntoskrnl.exe/ntoskrnl.exe.spec +@@ -844,6 +844,7 @@ + @ stub PoUnregisterSystemState + @ stdcall ProbeForRead(ptr long long) + @ stdcall ProbeForWrite(ptr long long) ++@ stdcall PsAcquireProcessExitSynchronization(ptr) + @ stub PsAssignImpersonationToken + @ stub PsChargePoolQuota + @ stub PsChargeProcessNonPagedPoolQuota +@@ -905,6 +906,7 @@ + @ stub PsProcessType + @ stub PsReferenceImpersonationToken + @ stub PsReferencePrimaryToken ++@ stdcall PsReleaseProcessExitSynchronization(ptr) + @ stdcall PsRemoveCreateThreadNotifyRoutine(ptr) + @ stdcall PsRemoveLoadImageNotifyRoutine(ptr) + @ stub PsRestoreImpersonation +-- +1.9.1 + diff --git a/patches/ntoskrnl-Stubs/0016-ntoskrnl-Add-ExfUnblockPushLock-stub.patch b/patches/ntoskrnl-Stubs/0016-ntoskrnl-Add-ExfUnblockPushLock-stub.patch new file mode 100644 index 00000000..25659945 --- /dev/null +++ b/patches/ntoskrnl-Stubs/0016-ntoskrnl-Add-ExfUnblockPushLock-stub.patch @@ -0,0 +1,49 @@ +From 4a6df954553de0f5a82e3e24eaf73bd48b22389e Mon Sep 17 00:00:00 2001 +From: Alistair Leslie-Hughes +Date: Wed, 28 Mar 2018 17:09:46 +1100 +Subject: [PATCH] ntoskrnl: Add ExfUnblockPushLock stub + +Signed-off-by: Alistair Leslie-Hughes +--- + dlls/ntoskrnl.exe/ntoskrnl.c | 15 +++++++++++++++ + dlls/ntoskrnl.exe/ntoskrnl.exe.spec | 1 + + 2 files changed, 16 insertions(+) + +diff --git a/dlls/ntoskrnl.exe/ntoskrnl.c b/dlls/ntoskrnl.exe/ntoskrnl.c +index 0ebe365..f9a3a63 100644 +--- a/dlls/ntoskrnl.exe/ntoskrnl.c ++++ b/dlls/ntoskrnl.exe/ntoskrnl.c +@@ -3529,3 +3529,18 @@ void WINAPI PsReleaseProcessExitSynchronization(PEPROCESS process) + { + FIXME("stub: %p\n", process); + } ++ ++typedef struct _EX_PUSH_LOCK_WAIT_BLOCK *PEX_PUSH_LOCK_WAIT_BLOCK; ++/********************************************************************* ++ * ExfUnblockPushLock (NTOSKRNL.@) ++ */ ++#ifdef DEFINE_FASTCALL2_ENTRYPOINT ++DEFINE_FASTCALL2_ENTRYPOINT( ExfUnblockPushLock ) ++void WINAPI DECLSPEC_HIDDEN __regs_ExfUnblockPushLock( EX_PUSH_LOCK *lock, ++ PEX_PUSH_LOCK_WAIT_BLOCK block) ++#else ++void WINAPI ExfUnblockPushLock( EX_PUSH_LOCK *lock, PEX_PUSH_LOCK_WAIT_BLOCK block ) ++#endif ++{ ++ FIXME( "stub: %p, %p\n", lock, block ); ++} +diff --git a/dlls/ntoskrnl.exe/ntoskrnl.exe.spec b/dlls/ntoskrnl.exe/ntoskrnl.exe.spec +index 7b7b4d4..87e5685 100644 +--- a/dlls/ntoskrnl.exe/ntoskrnl.exe.spec ++++ b/dlls/ntoskrnl.exe/ntoskrnl.exe.spec +@@ -133,6 +133,7 @@ + @ stub ExEnumHandleTable + @ stub ExEventObjectType + @ stub ExExtendZone ++@ stdcall -norelay ExfUnblockPushLock(ptr ptr) + @ stdcall ExFreePool(ptr) + @ stdcall ExFreePoolWithTag(ptr long) + @ stub ExFreeToPagedLookasideList +-- +1.9.1 + diff --git a/patches/ntoskrnl-Stubs/0017-ntoskrnl-Add-PsGetProcessId-stub.patch b/patches/ntoskrnl-Stubs/0017-ntoskrnl-Add-PsGetProcessId-stub.patch new file mode 100644 index 00000000..9e5b53e1 --- /dev/null +++ b/patches/ntoskrnl-Stubs/0017-ntoskrnl-Add-PsGetProcessId-stub.patch @@ -0,0 +1,45 @@ +From 8796964cd51e0edc14963425bd7ab5ef11f9c5f1 Mon Sep 17 00:00:00 2001 +From: Alistair Leslie-Hughes +Date: Wed, 28 Mar 2018 18:00:30 +1100 +Subject: [PATCH] ntoskrnl: Add PsGetProcessId stub + +Signed-off-by: Alistair Leslie-Hughes +--- + dlls/ntoskrnl.exe/ntoskrnl.c | 10 ++++++++++ + dlls/ntoskrnl.exe/ntoskrnl.exe.spec | 2 +- + 2 files changed, 11 insertions(+), 1 deletion(-) + +diff --git a/dlls/ntoskrnl.exe/ntoskrnl.c b/dlls/ntoskrnl.exe/ntoskrnl.c +index f9a3a63..a06479c 100644 +--- a/dlls/ntoskrnl.exe/ntoskrnl.c ++++ b/dlls/ntoskrnl.exe/ntoskrnl.c +@@ -3544,3 +3544,13 @@ void WINAPI ExfUnblockPushLock( EX_PUSH_LOCK *lock, PEX_PUSH_LOCK_WAIT_BLOCK blo + { + FIXME( "stub: %p, %p\n", lock, block ); + } ++ ++/********************************************************************* ++ * PsGetProcessId (NTOSKRNL.@) ++ */ ++HANDLE WINAPI PsGetProcessId(PEPROCESS process) ++{ ++ FIXME("stub: %p\n", process); ++ ++ return 0; ++} +diff --git a/dlls/ntoskrnl.exe/ntoskrnl.exe.spec b/dlls/ntoskrnl.exe/ntoskrnl.exe.spec +index 87e5685..7801b1a 100644 +--- a/dlls/ntoskrnl.exe/ntoskrnl.exe.spec ++++ b/dlls/ntoskrnl.exe/ntoskrnl.exe.spec +@@ -874,7 +874,7 @@ + @ stub PsGetProcessExitProcessCalled + @ stub PsGetProcessExitStatus + @ stub PsGetProcessExitTime +-@ stub PsGetProcessId ++@ stdcall PsGetProcessId(ptr) + @ stub PsGetProcessImageFileName + @ stub PsGetProcessInheritedFromUniqueProcessId + @ stub PsGetProcessJob +-- +1.9.1 + diff --git a/patches/ntoskrnl-Stubs/0018-ntoskrnl-Add-ObGetObjectType-stub.patch b/patches/ntoskrnl-Stubs/0018-ntoskrnl-Add-ObGetObjectType-stub.patch new file mode 100644 index 00000000..4296d9aa --- /dev/null +++ b/patches/ntoskrnl-Stubs/0018-ntoskrnl-Add-ObGetObjectType-stub.patch @@ -0,0 +1,47 @@ +From f3217f682f823e40dc09cd5cb07792666472aa32 Mon Sep 17 00:00:00 2001 +From: Alistair Leslie-Hughes +Date: Wed, 28 Mar 2018 18:54:25 +1100 +Subject: [PATCH] ntoskrnl: Add ObGetObjectType stub + +Signed-off-by: Alistair Leslie-Hughes +--- + dlls/ntoskrnl.exe/ntoskrnl.c | 10 ++++++++++ + dlls/ntoskrnl.exe/ntoskrnl.exe.spec | 1 + + 2 files changed, 11 insertions(+) + +diff --git a/dlls/ntoskrnl.exe/ntoskrnl.c b/dlls/ntoskrnl.exe/ntoskrnl.c +index a06479c..3f3c798 100644 +--- a/dlls/ntoskrnl.exe/ntoskrnl.c ++++ b/dlls/ntoskrnl.exe/ntoskrnl.c +@@ -2440,6 +2440,16 @@ USHORT WINAPI ObGetFilterVersion(void) + } + + /*********************************************************************** ++ * ObGetObjectType (NTOSKRNL.EXE.@) ++ */ ++POBJECT_TYPE WINAPI ObGetObjectType(void *object) ++{ ++ FIXME("stub: %p\n", object); ++ ++ return NULL; ++} ++ ++/*********************************************************************** + * IoGetAttachedDeviceReference (NTOSKRNL.EXE.@) + */ + DEVICE_OBJECT* WINAPI IoGetAttachedDeviceReference( DEVICE_OBJECT *device ) +diff --git a/dlls/ntoskrnl.exe/ntoskrnl.exe.spec b/dlls/ntoskrnl.exe/ntoskrnl.exe.spec +index 7801b1a..8714ccd 100644 +--- a/dlls/ntoskrnl.exe/ntoskrnl.exe.spec ++++ b/dlls/ntoskrnl.exe/ntoskrnl.exe.spec +@@ -808,6 +808,7 @@ + @ stub ObFindHandleForObject + @ stdcall ObGetFilterVersion() + @ stub ObGetObjectSecurity ++@ stdcall ObGetObjectType(ptr) + @ stub ObInsertObject + @ stub ObLogSecurityDescriptor + @ stub ObMakeTemporaryObject +-- +1.9.1 + diff --git a/patches/ntoskrnl-Stubs/definition b/patches/ntoskrnl-Stubs/definition index cf7ec6c8..ea624e87 100644 --- a/patches/ntoskrnl-Stubs/definition +++ b/patches/ntoskrnl-Stubs/definition @@ -7,4 +7,5 @@ Fixes: Add stub for ntoskrnl.IoGetDeviceAttachmentBaseRef Fixes: Implement ntoskrnl.ExInterlockedPopEntrySList Fixes: Implement ntoskrnl.NtBuildNumber Fixes: Implement ntoskrnl.ExInitializeNPagedLookasideList +Fixes: [44837] Add stub for ntoskrnl.exe.Ps{Acquire,Release}ProcessExitSynchronization Depends: Compiler_Warnings diff --git a/patches/patchinstall.sh b/patches/patchinstall.sh index 47c59373..f5b22aa1 100755 --- a/patches/patchinstall.sh +++ b/patches/patchinstall.sh @@ -5721,6 +5721,9 @@ fi # | This patchset has the following (direct or indirect) dependencies: # | * Compiler_Warnings # | +# | This patchset fixes the following Wine bugs: +# | * [#44837] Add stub for ntoskrnl.exe.Ps{Acquire,Release}ProcessExitSynchronization +# | # | Modified files: # | * dlls/ntoskrnl.exe/ntoskrnl.c, dlls/ntoskrnl.exe/ntoskrnl.exe.spec, include/ddk/wdm.h, include/winnt.h # | @@ -5735,6 +5738,10 @@ if test "$enable_ntoskrnl_Stubs" -eq 1; then patch_apply ntoskrnl-Stubs/0012-ntoskrnl-Implement-ExInterlockedPopEntrySList.patch patch_apply ntoskrnl-Stubs/0013-ntoskrnl.exe-Implement-NtBuildNumber.patch patch_apply ntoskrnl-Stubs/0014-ntoskrnl.exe-Implement-ExInitializeNPagedLookasideLi.patch + patch_apply ntoskrnl-Stubs/0015-ntoskrnl-Add-PsAcquireProcessExitSynchronization-PsR.patch + patch_apply ntoskrnl-Stubs/0016-ntoskrnl-Add-ExfUnblockPushLock-stub.patch + patch_apply ntoskrnl-Stubs/0017-ntoskrnl-Add-PsGetProcessId-stub.patch + patch_apply ntoskrnl-Stubs/0018-ntoskrnl-Add-ObGetObjectType-stub.patch ( printf '%s\n' '+ { "Alexander Morozov", "ntoskrnl.exe: Add stubs for ExAcquireFastMutexUnsafe and ExReleaseFastMutexUnsafe.", 1 },'; printf '%s\n' '+ { "Alexander Morozov", "ntoskrnl.exe: Improve KeReleaseMutex stub.", 1 },'; @@ -5746,6 +5753,10 @@ if test "$enable_ntoskrnl_Stubs" -eq 1; then printf '%s\n' '+ { "Michael Müller", "ntoskrnl: Implement ExInterlockedPopEntrySList.", 1 },'; printf '%s\n' '+ { "Michael Müller", "ntoskrnl.exe: Implement NtBuildNumber.", 1 },'; printf '%s\n' '+ { "Michael Müller", "ntoskrnl.exe: Implement ExInitializeNPagedLookasideList.", 1 },'; + printf '%s\n' '+ { "Alistair Leslie-Hughes", "ntoskrnl: Add PsAcquireProcessExitSynchronization/PsReleaseProcessExitSynchronization stub.", 1 },'; + printf '%s\n' '+ { "Alistair Leslie-Hughes", "ntoskrnl: Add ExfUnblockPushLock stub.", 1 },'; + printf '%s\n' '+ { "Alistair Leslie-Hughes", "ntoskrnl: Add PsGetProcessId stub.", 1 },'; + printf '%s\n' '+ { "Alistair Leslie-Hughes", "ntoskrnl: Add ObGetObjectType stub.", 1 },'; ) >> "$patchlist" fi