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 管理器发出或通过调用 IoBuildAsynchronousFsdRequest、 IoBuildSynchronousFsdRequest 或 IoBuildDeviceIoControlRequest 获取,则 IRP 会自动与线程关联。
有关在非比特线程上下文中使用系统线程和管理同步的详细信息,请参阅 驱动程序线程、调度程序对象和资源。
要求
要求 | 值 |
---|---|
目标平台 | 通用 |
标头 | ntifs.h (包括 Ntifs.h) |
Library | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= DISPATCH_LEVEL |