FltAllocateCallbackData 関数 (fltkernel.h)
FltAllocateCallbackData は、ミニフィルター ドライバーが I/O 要求を開始するために使用できるコールバック データ構造を割り当てます。
構文
NTSTATUS FLTAPI FltAllocateCallbackData(
[in] PFLT_INSTANCE Instance,
[in, optional] PFILE_OBJECT FileObject,
[out] PFLT_CALLBACK_DATA *RetNewCallbackData
);
パラメーター
[in] Instance
I/O 操作を開始しているミニフィルター ドライバー インスタンスの不透明なインスタンス ポインター。 このパラメーターは必須であり、 NULL にすることはできません。
[in, optional] FileObject
I/O 操作で使用されるファイル オブジェクト ポインター。 このパラメーターは省略可能であり、 NULL にすることができます。
[out] RetNewCallbackData
新しく割り当てられたコールバック データ (FLT_CALLBACK_DATA) 構造体のアドレスを受け取る呼び出し元割り当て変数へのポインター。
戻り値
FltAllocateCallbackData は、次のようなSTATUS_SUCCESSまたは適切な NTSTATUS 値を返します。
リターン コード | 説明 |
---|---|
|
FltAllocateCallbackData で、コールバック データ構造を割り当てようとしたときにプール割り当てエラーが発生しました。 これはエラー コードです。 |
注釈
ミニフィルター ドライバーは 、FltAllocateCallbackData を呼び出して、ミニフィルター ドライバーによって開始される I/O 操作のコールバック データ (FLT_CALLBACK_DATA) 構造を割り当てることができます。
FltAllocateCallbackData によって返されるコールバック データ構造体のパラメーターを初期化した後、呼び出し元は構造体を FltPerformSynchronousIo または FltPerformAsynchronousIo に渡すことによって I/O 操作を開始します。 これらのルーチンは、開始インスタンスの下にアタッチされているミニフィルター ドライバー インスタンス ( Instance パラメーターで 指定) とファイル システムにのみ I/O 操作を送信します。 指定したインスタンスの上に接続されているミニフィルター ドライバーは、I/O 操作を受け取りません。
ミニフィルター ドライバーは、IRP ベースの I/O 操作のみを開始できます。 高速 I/O またはファイル システム フィルター (FSFilter) コールバック操作を開始できません。
ミニフィルター ドライバーでは、次のようなルーチンを使用できない I/O 操作にのみ、 FltAllocateCallbackData、 FltPerformAsynchronousIo、 および FltPerformSynchronousIo を使用する必要があります。
FltAllocateCallbackData によって割り当てられたコールバック データ構造が不要になった場合、呼び出し元は FltFreeCallbackData を呼び出して解放する必要があります。
要件
要件 | 値 |
---|---|
対象プラットフォーム | ユニバーサル |
Header | fltkernel.h (Fltkernel.h を含む) |
Library | FltMgr.lib |
IRQL | <= APC_LEVEL |