次の方法で共有


FltAllocateCallbackDataEx 関数 (fltkernel.h)

FltAllocateCallbackDataEx ルーチンはコールバック データ構造を割り当て、ミニフィルター ドライバーが I/O 要求を開始するために使用できる追加の構造体のメモリを事前に割り当てることができます。

構文

NTSTATUS FLTAPI FltAllocateCallbackDataEx(
  [in]          PFLT_INSTANCE                    Instance,
  [in/optional] PFILE_OBJECT                     FileObject,
  [in]          FLT_ALLOCATE_CALLBACK_DATA_FLAGS Flags,
  [out]         PFLT_CALLBACK_DATA               *RetNewCallbackData
);

パラメーター

[in] Instance

I/O 操作を開始しているミニフィルター ドライバー インスタンスへの不透明なインスタンス ポインター。 このパラメーターは必須であり、NULL することはできません。

[in/optional] FileObject

I/O 操作で使用するファイル オブジェクトへのポインター。 このパラメーターは省略可能であり、NULL できます。 FileObject 、CREATE 操作の場合は NULL に設定します。

[in] Flags

0 または次のフラグの値: FLT_ALLOCATE_CALLBACK_DATA_PREALLOCATE_ALL_MEMORY

このフラグが設定されている場合、ルーチンは、フィルター・マネージャーが必要とするすべてのメモリーを事前割り振りして、入出力要求で使用される追加の構造体を作成します。

[out] RetNewCallbackData

新しく割り当てられたコールバック データのアドレスを受け取る呼び出し元によって割り当てられた変数へのポインター FLT_CALLBACK_DATA 構造体。

戻り値

FltAllocateCallbackDataEx ルーチンは、コールバック データ構造を割り当てようとしたときにルーチンでプール割り当てエラーが発生した場合、またはFLT_ALLOCATE_CALLBACK_DATA_PREALLOCATE_ALL_MEMORY フラグが設定されていて、追加のメモリを割り当てられなかった場合に、成功またはSTATUS_INSUFFICIENT_RESOURCESにSTATUS_SUCCESSを返します。

備考

FLT_ALLOCATE_CALLBACK_DATA_PREALLOCATE_ALL_MEMORY フラグが設定されている場合、ルーチンは、後続の I/O 要求で使用する追加のフィルター マネージャー構造に必要なすべてのメモリを割り当てます。 このフラグを使用すると、ミニフィルターは、メモリが不足している状況や、メモリ割り当てエラーからの復旧が複雑になる可能性がある状況で、I/O 要求を発行するために使用する 1 つ以上のコールバック データ構造を事前に割り当てることができます。

手記

追加の割り当てメモリは、フィルター マネージャーによって使用されます。 メモリ不足の状態のため、ファイル システムまたはその他のフィルターで I/O 要求が失敗する可能性があります。

大事な

FltAllocateCallbackData のコメントは、FltAllocateCallbackDataEx にも適用されます。 設計に適したルーチンを選択するには、その情報を確認します。

必要条件

要件 価値
サポートされる最小クライアント Windows 7 以降のバージョンの Windows オペレーティング システムで使用できます。
ターゲット プラットフォーム 万国
ヘッダー fltkernel.h (FltKernel.h を含む)
ライブラリ FltMgr.lib
IRQL <= APC_LEVEL

関連項目

FLT_CALLBACK_DATA

FltAllocateCallbackData