Add stub for KeWaitForMultipleObjects.

This commit is contained in:
Erich E. Hoover
2015-01-22 13:50:03 -07:00
parent 6a10f6d38f
commit 6a1d2cdd7b
5 changed files with 99 additions and 1 deletions

View File

@@ -0,0 +1,79 @@
From 0fa1a31ae872769dc2ccf069184d36117b767435 Mon Sep 17 00:00:00 2001
From: Austin English <austinenglish@gmail.com>
Date: Wed, 24 Dec 2014 15:35:23 -0600
Subject: ntoskrnl.exe: add KeWaitForMultipleObjects stub
---
dlls/ntoskrnl.exe/ntoskrnl.c | 13 +++++++++++++
dlls/ntoskrnl.exe/ntoskrnl.exe.spec | 2 +-
include/ddk/ntddk.h | 17 +++++++++++++++++
3 files changed, 31 insertions(+), 1 deletion(-)
diff --git a/dlls/ntoskrnl.exe/ntoskrnl.c b/dlls/ntoskrnl.exe/ntoskrnl.c
index af1626d..97e09a7 100644
--- a/dlls/ntoskrnl.exe/ntoskrnl.c
+++ b/dlls/ntoskrnl.exe/ntoskrnl.c
@@ -1480,6 +1480,19 @@ 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 b824250..720ce3e 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..ac6484f 100644
--- a/include/ddk/ntddk.h
+++ b/include/ddk/ntddk.h
@@ -140,6 +140,23 @@ 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;
+ PKTHREAD Thread;
+ PVOID Object;
+ struct _KWAIT_BLOCK *NextWaitBlock;
+ USHORT WaitKey;
+ USHORT WaitType;
+} KWAIT_BLOCK, *PKWAIT_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);
--
1.9.1

View File

@@ -0,0 +1 @@
Fixes: Add stub for KeWaitForMultipleObjects