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,则将检索线程的分页优先级和线程优先级并将其放置在 PagePriorityThreadPriority IO_PRIORITY_INFO 结构IO_PRIORITY_INFO参数指向 PriorityInfo 参数的成员中。 如果 Thread 参数 NULL,则 ThreadPriorityPagePriority IO_PRIORITY_INFO 成员使用 sentinel 值进行标记,指示系统不应更改线程的分页和线程优先级。 请注意,这些 sentinel 值一直有效,直到显式更改。

以下伪代码示例描述了检索到哪些 I/O 优先级值并将其放置在 IoPriority IO_PRIORITY_INFO 结构的成员中,PriorityInfo 参数所指向。

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)
Fltmgr.lib
DLL FltMgr.sys
IRQL <= DISPATCH_LEVEL

另请参阅

FLT_CALLBACK_DATA

FltApplyPriorityInfoThread

FltGetIoPriorityHint

FltGetIoPriorityHintFromCallbackData

FltGetIoPriorityHintFromFileObject

FltGetIoPriorityHintFromThread

FltRetrieveIoPriorityInfo

FltSetIoPriorityHintIntoCallbackData

FltSetIoPriorityHintIntoFileObject

FltSetIoPriorityHintIntoThread

IO_PRIORITY_INFO

IoInitializePriorityInfo

PsGetCurrentThread