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
I/O 操作を表す 、FLT_CALLBACK_DATA 構造体への省略可能なポインター。 このパラメーターは、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 値は、明示的に変更されるまで有効なままであることに注意してください。
次の擬似コード例では、PriorityInfo パラメーターによって指されるIO_PRIORITY_INFO構造体の IoPriority メンバーに取得および配置される I/O 優先度値について説明します。
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 以降で使用できます。 |
対象プラットフォーム | ユニバーサル |
Header | fltkernel.h (Fltkernel.h を含む) |
Library | Fltmgr.lib |
[DLL] | FltMgr.sys |
IRQL | <= DISPATCH_LEVEL |
こちらもご覧ください
FltGetIoPriorityHintFromCallbackData
FltGetIoPriorityHintFromFileObject
FltGetIoPriorityHintFromThread
FltSetIoPriorityHintIntoCallbackData
FltSetIoPriorityHintIntoFileObject