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でない場合、スレッドのページング優先度とスレッド優先度が取得され、PagePriority に配置され、PriorityInfo パラメーターによって指されるIO_PRIORITY_INFO構造体の threadPriority メンバーが されます。 Thread パラメーターが NULL 場合、ThreadPriority と PagePriority IO_PRIORITY_INFO構造体のメンバーは、スレッドのページングとスレッドの優先順位をシステムによって変更しないことを示す 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 以降で使用できます。 |
ターゲット プラットフォーム の | 万国 |
ヘッダー | fltkernel.h (Fltkernel.h を含む) |
ライブラリ | Fltmgr.lib |
DLL | FltMgr.sys |
IRQL | <= DISPATCH_LEVEL |
関連項目
FltApplyPriorityInfoThreadをする
FltGetIoPriorityHintの
FltGetIoPriorityHintFromCallbackDataの
FltGetIoPriorityHintFromFileObjectの
FltGetIoPriorityHintFromThreadの
FltRetrieveIoPriorityInfoの
FltSetIoPriorityHintIntoCallbackDataの
FltSetIoPriorityHintIntoFileObjectの
FltSetIoPriorityHintIntoThreadの
IoInitializePriorityInfoの
PsGetCurrentThreadの