共用方式為


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,則會擷取線程的分頁優先順序和線程優先順序,並將其 放在 pagePriorityThreadPriorityPriorityInfo 參數所指向之IO_PRIORITY_INFO結構的成員。 如果 Thread 參數 NULL,則 ThreadPriorityPagePriority 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

另請參閱

FLT_CALLBACK_DATA

FltApplyPriorityInfoThread

FltGetIoPriorityHint

FltGetIoPriorityHintFromCallbackData

FltGetIoPriorityHintFromFileObject

FltGetIoPriorityHintFromThread

FltRetrieveIoPriorityInfo

FltSetIoPriorityHintIntoCallbackData

FltSetIoPriorityHintIntoFileObject

FltSetIoPriorityHintIntoThread

IO_PRIORITY_INFO

IoInitializePriorityInfo

PsGetCurrentThread