次の方法で共有


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 要求を追加します。 FltCbdqRemoveIo 使用してキューから特定の I/O 要求を削除するか、FltCbdqRemoveNextIo して、次に使用可能な I/O 要求を削除します。

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

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

必要条件

要件 価値
ターゲット プラットフォーム 万国
ヘッダー fltkernel.h (Fltkernel.h を含む)
IRQL 「解説」セクションを参照してください。

関連項目

FLT_CALLBACK_DATA_QUEUE

FLT_IS_IRP_OPERATION

FltCbdqEnable

FltCbdqInitialize

FltCbdqInsertIo する

FltCbdqRemoveIo する

FltCbdqRemoveNextIo