FltReuseCallbackData 関数 (fltkernel.h)
FltReuseCallbackData ルーチンは、コールバック データ構造を再初期化して再利用できるようにします。
構文
VOID FLTAPI FltReuseCallbackData(
[in, out] PFLT_CALLBACK_DATA CallbackData
);
パラメーター
[in, out] CallbackData
再利用するコールバック データ (FLT_CALLBACK_DATA) 構造体へのポインター。 この構造体は、 FltAllocateCallbackData の以前の呼び出しによって割り当てられている必要があります。 このパラメーターは必須であり、 NULL にすることはできません。
戻り値
なし
解説
FltReuseCallbackData は、コールバック データ (FLT_CALLBACK_DATA) 構造を再初期化して、新しい I/O 操作で使用できるようにします。 FltReuseCallbackData は、コールバック データ構造の I/O パラメーター ブロックの TargetInstance フィールドまたは TargetFileObject フィールドを変更しません。
FltReuseCallbackData ルーチンは、指定された CallbackData オブジェクトに関連付けられている MDL チェーンを解放します。 FLT_CALLBACK_DATA オブジェクトに関連付けられている MDL チェーンへのポインターは、そのオブジェクトの FltReuseCallbackData の呼び出し後に無効になります。
FltReuseCallbackData を使用してコールバック データ構造を再利用すると、構造体を解放して新しいデータ構造を割り当てるよりも高速です。
ミニフィルター ドライバーでは、FltAllocateCallbackData で割り当てられ、FltPerformSynchronousIo または FltPerformAsynchronousIo の呼び出しで使用されていたコールバック データ構造でのみ、FltReuseCallbackData を使用する必要があります。
コールバック データ構造が非同期 I/O に使用された場合、ミニフィルター ドライバーは FltPerformAsynchronousIo の呼び出しで指定された CallbackRoutine が呼び出されるまで FltReuseCallbackData を呼び出さないでください。
特に、ミニフィルター ドライバー自体によって割り当てられないコールバック データ構造には、このルーチンを使用しないでください。
要件
要件 | 値 |
---|---|
対象プラットフォーム | ユニバーサル |
Header | fltkernel.h (Fltkernel.h を含む) |
Library | FltMgr.lib |
[DLL] | Fltmgr.sys |
IRQL | <= APC_LEVEL |