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結構的PagePriorityThreadPriority成員中。 如果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)
程式庫 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