IoGetTopLevelIrp 函数 (ntifs.h)
IoGetTopLevelIrp 例程返回当前线程的 TopLevelIrp 字段的值。
语法
PIRP IoGetTopLevelIrp();
返回值
IoGetTopLevelIrp 返回当前线程的 TopLevelIrp 字段的值。
注解
IoGetTopLevelIrp 可以返回 NULL、任意特定于文件系统的值 (如指向当前 IRP) 的指针,或下表中列出的标志之一。
如果当前线程在文件系统上方没有资源, IoGetTopLevelIrp 将返回 NULL。
如果文件系统是当前线程的顶级组件, IoGetTopLevelIrp 将返回指向当前 IRP 的指针。
如果文件系统以外的组件是当前线程的顶级组件, IoGetTopLevelIrp 将返回以下标志之一:
标志 | 含义 |
---|---|
FSRTL_FSP_TOP_LEVEL_IRP | 这是递归调用。 |
FSRTL_CACHE_TOP_LEVEL_IRP | 缓存管理器是当前线程的顶级组件。 |
FSRTL_MOD_WRITE_TOP_LEVEL_IRP | 修改后的页面编写器是当前线程的顶级组件。 |
FSRTL_FAST_IO_TOP_LEVEL_IRP | 缓存管理器是当前线程的顶级组件,当前线程位于快速 I/O 路径中。 |
要求
要求 | 值 |
---|---|
目标平台 | 通用 |
标头 | ntifs.h (包括 Ntifs.h、Wdm.h) |
Library | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= DISPATCH_LEVEL |