次の方法で共有


FltCbdqDisable 関数 (fltkernel.h)

FltCbdqDisable は、ミニフィルター ドライバーのコールバック データ キューを無効にします。

構文

VOID FLTAPI FltCbdqDisable(
  [in, out] PFLT_CALLBACK_DATA_QUEUE Cbdq
);

パラメーター

[in, out] Cbdq

コールバック データ キューへのポインター。

戻り値

なし

解説

FltCbdqDisable はコールバック データ キューを無効にして、それ以上項目を追加できないようにします。

ミニフィルター ドライバーは 、FltCbdqXxx ルーチンを使用して、IRP ベースの I/O 操作のコールバック データ キューを実装できます。 これらのルーチンを使用することで、ミニフィルター ドライバーはキューをキャンセルセーフにすることができます。システムは、ミニフィルター ドライバーの I/O 取り消しを透過的に処理します。

FltCbdqXxx ルーチンは、IRP ベースの I/O 操作にのみ使用できます。 指定されたコールバック データ構造が IRP ベースの I/O 操作を表すかどうかを確認するには、 FLT_IS_IRP_OPERATION マクロを使用します。

ミニフィルター ドライバーは通常、インスタンスの破棄またはミニフィルター ドライバーのアンロード中 に FltCbdqDisable を呼び出します。 このルーチンを呼び出した後、ミニフィルター ドライバーはキューを空にするか、 ドレインする必要があります。 これは、これ以上項目がキューに残らなくなるまで 、FltCbdqRemoveNextIo を 繰り返し呼び出すことによって行うことができます。

コールバック データ キューを作成する方法の詳細については、「 FltCbdqInitialize 」を参照してください。 FltCbdqInsertIo を使用して、キューに I/O 要求を追加します。 特定の I/O 要求をキューから削除するには FltCbdqRemoveIo を使用し、次に使用可能な I/O 要求を削除するには FltCbdqRemoveNextIo を使用します。

無効にした後でキューを再度有効にするには、 FltCbdqEnable を呼び出します。

キューがミューテックス オブジェクトまたはリソース変数ではなくスピン ロックによって保護されている場合、FltCbdqDisable の呼び出し元は IRQL <= DISPATCH_LEVELで実行できます。 ミューテックスまたはリソースを使用する場合、呼び出し元は IRQL <= APC_LEVELで実行されている必要があります。

要件

要件
対象プラットフォーム ユニバーサル
Header fltkernel.h (Fltkernel.h を含む)
IRQL 「解説」を参照してください。

こちらもご覧ください

FLT_CALLBACK_DATA_QUEUE

FLT_IS_IRP_OPERATION

FltCbdqEnable

FltCbdqInitialize

FltCbdqInsertIo

FltCbdqRemoveIo

FltCbdqRemoveNextIo