FltRetrieveIoPriorityInfo 函数 (fltkernel.h)
微筛选器驱动程序使用 FltRetrieveIoPriorityInfo 例程从线程中检索优先级信息。
语法
NTSTATUS FLTAPI FltRetrieveIoPriorityInfo(
[in, optional] PFLT_CALLBACK_DATA Data,
[in, optional] PFILE_OBJECT FileObject,
[in, optional] PETHREAD Thread,
[in, out] PIO_PRIORITY_INFO PriorityInfo
);
参数
[in, optional] Data
指向 FLT_CALLBACK_DATA 结构的可选指针,该结构表示 I/O 操作。 此参数可以为 NULL。
[in, optional] FileObject
指向与 I/O 操作关联的文件对象的可选指针。 此参数可以为 NULL。
[in, optional] Thread
指向要从中检索优先级信息的线程的可选指针。 此参数可以为 NULL。
[in, out] PriorityInfo
指向用于从给定线程接收优先级信息的 IO_PRIORITY_INFO 结构的指针。 IO_PRIORITY_INFO 结构必须由适当的例程初始化,然后此例程才能使用它。 有关详细信息,请参阅以下“备注”部分。
返回值
FltRetrieveIoPriorityInfo 例程返回STATUS_SUCCESS或相应的 NTSTATUS 值。
注解
FltRetrieveIoPriorityInfo 例程检索优先级信息,并将信息保存在 PriorityInfo 参数指向的结构中。
通常, FltRetrieveIoPriorityInfo 例程与 FltApplyPriorityInfoThread 例程结合使用以保存并设置线程的 I/O 优先级、分页优先级和线程优先级。
如果 Thread 参数为非 NULL,则将检索线程的分页优先级和线程优先级,并将其放置在 PriorityInfo 参数指向的 IO_PRIORITY_INFO 结构的 PagePriority 和 ThreadPriority 成员中。 如果 Thread 参数为 NULL,则IO_PRIORITY_INFO结构的 ThreadPriority 和 PagePriority 成员使用 sentinel 值标记,指示系统不应更改线程的分页和线程优先级。 请注意,这些 sentinel 值在显式更改之前一直有效。
下面的伪代码示例描述了要检索哪些 I/O 优先级值并将其放置在 PriorityInfo 参数指向的 IO_PRIORITY_INFO 结构的 IoPriority 成员中。
Set the IoPriority member of the structure pointed to by the PriorityInfo parameter to the normal I/O priority value.
IF Data is not NULL and represents an IRP-based operation and has I/O priority information available THEN
Set the IoPriority member of the structure pointed to by the PriorityInfo parameter to the Data's I/O priority value.
ELSE IF the FileObject parameter is not NULL and has I/O priority information available THEN
Set the IoPriority member of the structure pointed to by the PriorityInfo parameter to the FileObject's I/O priority value.
ELSE IF the Thread parameter is not NULL THEN
Set the IoPriority member of the structure pointed to by the PriorityInfo parameter to the Thread's I/O priority value.
注意
如果 PriorityInfo 参数指向的 IO_PRIORITY_INFO 结构尚未初始化,则必须在调用此例程之前通过调用 IoInitializePriorityInfo 例程进行初始化。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 此例程从 Windows Vista 开始可用。 |
目标平台 | 通用 |
标头 | fltkernel.h (包括 Fltkernel.h) |
Library | Fltmgr.lib |
DLL | FltMgr.sys |
IRQL | <= DISPATCH_LEVEL |
另请参阅
FltGetIoPriorityHintFromCallbackData
FltGetIoPriorityHintFromFileObject
FltGetIoPriorityHintFromThread
FltSetIoPriorityHintIntoCallbackData
FltSetIoPriorityHintIntoFileObject