FltRetrieveIoPriorityInfo 函式 (fltkernel.h)
Minifilter 驅動程式會使用 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 開始可供使用。 |
目標平台 | Universal |
標頭 | fltkernel.h (包含 Fltkernel.h) |
程式庫 | Fltmgr.lib |
Dll | FltMgr.sys |
IRQL | <= DISPATCH_LEVEL |
另請參閱
FltGetIoPriorityHintFromCallbackData
FltGetIoPriorityHintFromFileObject
FltGetIoPriorityHintFromThread
FltSetIoPriorityHintIntoCallbackData
FltSetIoPriorityHintIntoFileObject