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 | 「解説」を参照してください。 |