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 返回指向线程当前附加到的进程的指针。 对于排队处理文件对象的 IRP(例如完成端口 I/O),IoGetRequestorProcess 返回指向颁发进程的指针。 如果未附加线程,IoGetRequestorProcess 将返回指向创建线程的进程的指针。

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

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

 

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

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

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

要求

要求 价值
目标平台 普遍
标头 ntifs.h (include Ntifs.h)
NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= DISPATCH_LEVEL

另请参阅

IoBuildAsynchronousFsdRequest

IoBuildDeviceIoControlRequest

IoBuildSynchronousFsdRequest

IoGetRequestorProcessId