Zebediah Figura : ntoskrnl.exe: Implement IoGetRequestorProcess().
Alexandre Julliard
julliard at winehq.org
Thu Aug 22 15:09:54 CDT 2019
Module: wine
Branch: master
Commit: ca1c1534223ea58b5a0f16d5ee4fcabfcd4e6946
URL: https://source.winehq.org/git/wine.git/?a=commit;h=ca1c1534223ea58b5a0f16d5ee4fcabfcd4e6946
Author: Zebediah Figura <z.figura12 at gmail.com>
Date: Wed Aug 21 23:16:54 2019 -0500
ntoskrnl.exe: Implement IoGetRequestorProcess().
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=47623
Signed-off-by: Zebediah Figura <z.figura12 at gmail.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/ntoskrnl.exe/ntoskrnl.c | 9 +++++++++
dlls/ntoskrnl.exe/ntoskrnl.exe.spec | 2 +-
dlls/ntoskrnl.exe/tests/driver.c | 2 ++
include/ddk/ntifs.h | 1 +
4 files changed, 13 insertions(+), 1 deletion(-)
diff --git a/dlls/ntoskrnl.exe/ntoskrnl.c b/dlls/ntoskrnl.exe/ntoskrnl.c
index a3dd7b9..18b17f8 100644
--- a/dlls/ntoskrnl.exe/ntoskrnl.c
+++ b/dlls/ntoskrnl.exe/ntoskrnl.c
@@ -3911,3 +3911,12 @@ ULONG WINAPI ExSetTimerResolution(ULONG time, BOOLEAN set_resolution)
FIXME("stub: %u %d\n", time, set_resolution);
return KeQueryTimeIncrement();
}
+
+/***********************************************************************
+ * IoGetRequestorProcess (NTOSKRNL.EXE.@)
+ */
+PEPROCESS WINAPI IoGetRequestorProcess(IRP *irp)
+{
+ TRACE("irp %p.\n", irp);
+ return irp->Tail.Overlay.Thread->kthread.process;
+}
diff --git a/dlls/ntoskrnl.exe/ntoskrnl.exe.spec b/dlls/ntoskrnl.exe/ntoskrnl.exe.spec
index 88c1a06..ddc3f72 100644
--- a/dlls/ntoskrnl.exe/ntoskrnl.exe.spec
+++ b/dlls/ntoskrnl.exe/ntoskrnl.exe.spec
@@ -406,7 +406,7 @@
@ stub IoGetInitialStack
@ stub IoGetLowerDeviceObject
@ stdcall IoGetRelatedDeviceObject(ptr)
-@ stub IoGetRequestorProcess
+@ stdcall IoGetRequestorProcess(ptr)
@ stub IoGetRequestorProcessId
@ stub IoGetRequestorSessionId
@ stdcall IoGetStackLimits(ptr ptr)
diff --git a/dlls/ntoskrnl.exe/tests/driver.c b/dlls/ntoskrnl.exe/tests/driver.c
index 6ab3c62..0506011 100644
--- a/dlls/ntoskrnl.exe/tests/driver.c
+++ b/dlls/ntoskrnl.exe/tests/driver.c
@@ -225,6 +225,8 @@ static void test_irp_struct(IRP *irp, DEVICE_OBJECT *device)
ok(!irp->UserEvent, "UserEvent = %p\n", irp->UserEvent);
ok(irp->Tail.Overlay.Thread == (PETHREAD)KeGetCurrentThread(),
"IRP thread is not the current thread\n");
+
+ ok(IoGetRequestorProcess(irp) == IoGetCurrentProcess(), "processes didn't match\n");
}
static void test_mdl_map(void)
diff --git a/include/ddk/ntifs.h b/include/ddk/ntifs.h
index b287b06..39636e8 100644
--- a/include/ddk/ntifs.h
+++ b/include/ddk/ntifs.h
@@ -131,6 +131,7 @@ typedef struct _FS_FILTER_CALLBACKS
BOOLEAN WINAPI FsRtlIsNameInExpression(PUNICODE_STRING, PUNICODE_STRING, BOOLEAN, PWCH);
DEVICE_OBJECT * WINAPI IoGetAttachedDevice(DEVICE_OBJECT*);
+PEPROCESS WINAPI IoGetRequestorProcess(IRP*);
NTSTATUS WINAPI ObOpenObjectByPointer(void*,ULONG,PACCESS_STATE,ACCESS_MASK,POBJECT_TYPE,KPROCESSOR_MODE,HANDLE*);
NTSTATUS WINAPI ObQueryNameString(PVOID,POBJECT_NAME_INFORMATION,ULONG,PULONG);
BOOLEAN WINAPI PsIsSystemThread(PETHREAD);
More information about the wine-cvs
mailing list