次の方法で共有


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 にすることができます。 これが CREATE 操作の場合は、 FileObjectNULL に設定します。

[in] Flags

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

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

[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 オペレーティング システムで使用できます。
対象プラットフォーム ユニバーサル
Header fltkernel.h (FltKernel.h を含む)
Library FltMgr.lib
IRQL <= APC_LEVEL

こちらもご覧ください

FLT_CALLBACK_DATA

FltAllocateCallbackData