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 和 ThreadPriorityPriorityInfo 參數所指向之IO_PRIORITY_INFO結構的成員。 如果 Thread 參數 NULL,則 ThreadPriority 和 PagePriority IO_PRIORITY_INFO 結構的成員會標示為 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) |
連結庫 | Fltmgr.lib |
DLL | FltMgr.sys |
IRQL | <= DISPATCH_LEVEL |
另請參閱
FltGetIoPriorityHintFromCallbackData
FltGetIoPriorityHintFromFileObject
FltGetIoPriorityHintFromThread
FltSetIoPriorityHintIntoCallbackData
FltSetIoPriorityHintIntoFileObject