From: Austin English Subject: [PATCH] ntoskrnl.exe: add PsSetCreateProcessNotifyRoutineEx stub Message-Id: <20180301220238.25330-1-austinenglish@gmail.com> Date: Thu, 1 Mar 2018 16:02:38 -0600 For https://bugs.winehq.org/show_bug.cgi?id=44499 Signed-off-by: Austin English --- dlls/ntoskrnl.exe/ntoskrnl.c | 11 +++++++++++ dlls/ntoskrnl.exe/ntoskrnl.exe.spec | 1 + include/ddk/ntddk.h | 18 ++++++++++++++++++ 3 files changed, 30 insertions(+) diff --git a/dlls/ntoskrnl.exe/ntoskrnl.c b/dlls/ntoskrnl.exe/ntoskrnl.c index 4342902c68..10f69baac1 100644 --- a/dlls/ntoskrnl.exe/ntoskrnl.c +++ b/dlls/ntoskrnl.exe/ntoskrnl.c @@ -68,6 +68,7 @@ typedef struct _KSERVICE_TABLE_DESCRIPTOR KSERVICE_TABLE_DESCRIPTOR KeServiceDescriptorTable[4] = { { 0 } }; typedef void (WINAPI *PCREATE_PROCESS_NOTIFY_ROUTINE)(HANDLE,HANDLE,BOOLEAN); +typedef void (WINAPI *PCREATE_PROCESS_NOTIFY_ROUTINE_EX)(PEPROCESS,HANDLE,PPS_CREATE_NOTIFY_INFO); typedef void (WINAPI *PCREATE_THREAD_NOTIFY_ROUTINE)(HANDLE,HANDLE,BOOLEAN); static const WCHAR servicesW[] = {'\\','R','e','g','i','s','t','r','y', @@ -2388,6 +2389,16 @@ NTSTATUS WINAPI PsSetCreateProcessNotifyRoutine( PCREATE_PROCESS_NOTIFY_ROUTINE } +/*********************************************************************** + * PsSetCreateProcessNotifyRoutineEx (NTOSKRNL.EXE.@) + */ +NTSTATUS WINAPI PsSetCreateProcessNotifyRoutineEx( PCREATE_PROCESS_NOTIFY_ROUTINE_EX callback, BOOLEAN remove ) +{ + FIXME( "stub: %p %d\n", callback, remove ); + return STATUS_SUCCESS; +} + + /*********************************************************************** * PsSetCreateThreadNotifyRoutine (NTOSKRNL.EXE.@) */ diff --git a/dlls/ntoskrnl.exe/ntoskrnl.exe.spec b/dlls/ntoskrnl.exe/ntoskrnl.exe.spec index 7f437049d6..ebf1705729 100644 --- a/dlls/ntoskrnl.exe/ntoskrnl.exe.spec +++ b/dlls/ntoskrnl.exe/ntoskrnl.exe.spec @@ -912,6 +912,7 @@ @ stub PsRevertToSelf @ stub PsSetContextThread @ stdcall PsSetCreateProcessNotifyRoutine(ptr long) +@ stdcall PsSetCreateProcessNotifyRoutineEx(ptr long) @ stdcall PsSetCreateThreadNotifyRoutine(ptr) @ stub PsSetJobUIRestrictionsClass @ stub PsSetLegoNotifyRoutine diff --git a/include/ddk/ntddk.h b/include/ddk/ntddk.h index 6aae257770..4718ddab0d 100644 --- a/include/ddk/ntddk.h +++ b/include/ddk/ntddk.h @@ -186,6 +186,24 @@ typedef struct _RTL_AVL_TABLE { void *TableContext; } RTL_AVL_TABLE, *PRTL_AVL_TABLE; +typedef struct _PS_CREATE_NOTIFY_INFO { + SIZE_T Size; + union { + ULONG Flags; + struct { + ULONG FileOpenNameAvailable :1; + ULONG IsSubsystemProcess :1; + ULONG Reserved :30; + }; + }; + HANDLE ParentProcessId; + CLIENT_ID CreatingThreadId; + struct _FILE_OBJECT *FileObject; + PCUNICODE_STRING ImageFileName; + PCUNICODE_STRING CommandLine; + NTSTATUS CreationStatus; +} PS_CREATE_NOTIFY_INFO, *PPS_CREATE_NOTIFY_INFO; + typedef VOID (WINAPI *PDRIVER_NOTIFICATION_CALLBACK_ROUTINE)(PVOID,PVOID); typedef VOID (WINAPI *PDRIVER_REINITIALIZE)(PDRIVER_OBJECT,PVOID,ULONG); typedef VOID (WINAPI *PLOAD_IMAGE_NOTIFY_ROUTINE)(PUNICODE_STRING,HANDLE,PIMAGE_INFO); -- 2.16.1