IoGetRequestorProcess 函数 (ntifs.h)

IoGetRequestorProcess 例程返回最初请求给定 I/O 操作的线程的进程指针。

语法

PEPROCESS IoGetRequestorProcess(
  [in] PIRP Irp
);

参数

[in] Irp

指向 I/O 操作的 I/O 请求数据包 (IRP) 的指针。

返回值

IoGetRequestorProcess 返回请求 I/O 操作的线程的进程指针。 如果 IRP 不与任何线程关联, IoGetRequestorProcess 将返回 NULL

注解

盯着 Windows Vista。 IoGetRequestorProcess 返回指向线程当前附加到的进程的指针。 对于排队等待文件对象(例如完成端口 I/O)的 IRP,IoGetRequestorProcess 返回指向发出进程的指针。 如果未附加线程, IoGetRequestorProcess 将返回指向创建线程的进程的指针。

在 Windows XP 上, IoGetRequestorProcess 返回指向线程当前附加到的进程的指针。

注意 在 Windows XP 上,如果 IRP 包含非 NULL 线程但没有附加线程, IoGetRequestorProcess 将尝试访问未定义线程的进程信息。 如果在没有异常处理的情况下调用 IoGetRequestorProcess 或 IRQL 过高,则这会显示一个可能的 bug 检查条件。

 

在 Windows XP 之前, IoGetRequestorProcess 返回指向创建线程的进程的指针。

如果 IRP 由 I/O 管理器发出或通过调用 IoBuildAsynchronousFsdRequestIoBuildSynchronousFsdRequestIoBuildDeviceIoControlRequest 获取,则 IRP 会自动与线程关联。

有关在非比特线程上下文中使用系统线程和管理同步的详细信息,请参阅 驱动程序线程、调度程序对象和资源

要求

要求
目标平台 通用
标头 ntifs.h (包括 Ntifs.h)
Library NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= DISPATCH_LEVEL

另请参阅

IoBuildAsynchronousFsdRequest

IoBuildDeviceIoControlRequest

IoBuildSynchronousFsdRequest

IoGetRequestorProcessId