From: Austin English Subject: ntoskrnl.exe: add KeWaitForMultipleObjects stub Message-Id: Date: Wed, 24 Dec 2014 15:35:23 -0600 -- -Austin


--
-Austin
From 49eab21c060b5fae43899de0c3dafb4e90bd79b1 Mon Sep 17 00:00:00 2001 From: Austin English Date: Wed, 24 Dec 2014 15:33:19 -0600 Subject: [PATCH] ntoskrnl.exe: add KeWaitForMultipleObjects stub --- dlls/ntoskrnl.exe/ntoskrnl.c | 9 +++++++++ dlls/ntoskrnl.exe/ntoskrnl.exe.spec | 2 +- include/ddk/ntddk.h | 15 +++++++++++++++ 3 files changed, 25 insertions(+), 1 deletion(-) diff --git a/dlls/ntoskrnl.exe/ntoskrnl.c b/dlls/ntoskrnl.exe/ntoskrnl.c index 2285ec6..98e41fd 100644 --- a/dlls/ntoskrnl.exe/ntoskrnl.c +++ b/dlls/ntoskrnl.exe/ntoskrnl.c @@ -1467,6 +1467,15 @@ NTSTATUS WINAPI KeWaitForSingleObject(PVOID Object, } /*********************************************************************** + * KeWaitForMultipleObjects (NTOSKRNL.EXE.@) + */ +NTSTATUS WINAPI KeWaitForMultipleObjects(ULONG Count, PVOID Object, WAIT_TYPE WaitType, KWAIT_REASON WaitReason, KPROCESSOR_MODE WaitMode, BOOLEAN Alertable, PLARGE_INTEGER Timeout, PKWAIT_BLOCK WaitBlockArray) +{ + FIXME( "stub: %u, %p, %d, %d, %d, %d, %p, %p\n", Count, Object, WaitType, WaitReason, WaitMode, Alertable, Timeout, WaitBlockArray ); + return STATUS_NOT_IMPLEMENTED; +} + +/*********************************************************************** * IoRegisterFileSystem (NTOSKRNL.EXE.@) */ VOID WINAPI IoRegisterFileSystem(PDEVICE_OBJECT DeviceObject) diff --git a/dlls/ntoskrnl.exe/ntoskrnl.exe.spec b/dlls/ntoskrnl.exe/ntoskrnl.exe.spec index 228da29..7b56b28 100644 --- a/dlls/ntoskrnl.exe/ntoskrnl.exe.spec +++ b/dlls/ntoskrnl.exe/ntoskrnl.exe.spec @@ -627,7 +627,7 @@ @ stub KeUpdateRunTime @ stub KeUpdateSystemTime @ stub KeUserModeCallback -@ stub KeWaitForMultipleObjects +@ stdcall KeWaitForMultipleObjects(long ptr long long long long ptr ptr) @ stdcall KeWaitForMutexObject(ptr long long long ptr) @ stdcall KeWaitForSingleObject(ptr long long long ptr) @ stub KiBugCheckData diff --git a/include/ddk/ntddk.h b/include/ddk/ntddk.h index 56f2f35..45db81a 100644 --- a/include/ddk/ntddk.h +++ b/include/ddk/ntddk.h @@ -140,6 +140,21 @@ typedef struct _FILE_VALID_DATA_LENGTH_INFORMATION LARGE_INTEGER ValidDataLength; } FILE_VALID_DATA_LENGTH_INFORMATION, *PFILE_VALID_DATA_LENGTH_INFORMATION; +typedef struct _KWAIT_BLOCK { + LIST_ENTRY WaitListEntry; + struct _KTHREAD *RESTRICTED_POINTER Thread; + PVOID Object; + struct _KWAIT_BLOCK *RESTRICTED_POINTER NextWaitBlock; + USHORT WaitKey; + USHORT WaitType; +} KWAIT_BLOCK, *PKWAIT_BLOCK, *RESTRICTED_POINTER PRKWAIT_BLOCK; + +/* FIXME: belongs in ntdef.h */ +typedef enum _WAIT_TYPE { + WaitAll, + WaitAny +} WAIT_TYPE; + 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.1.1