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,则将检索线程的分页优先级和线程优先级并将其放置在 PagePriority 和 ThreadPriority IO_PRIORITY_INFO 结构IO_PRIORITY_INFO参数指向 PriorityInfo 参数的成员中。 如果 Thread 参数 NULL,则 ThreadPriority 和 PagePriority 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 |
另请参阅
FltGetIoPriorityHintFromCallbackData
FltGetIoPriorityHintFromFileObject
FltGetIoPriorityHintFromThread
FltSetIoPriorityHintIntoCallbackData
FltSetIoPriorityHintIntoFileObject