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。
如果佇列受到 微調鎖定 保護,而不是 mutex 物件 或 資源變數, FltCbdqDisable 的呼叫端可以在 IRQL <= DISPATCH_LEVEL上執行。 如果使用 mutex 或資源,呼叫端必須在 IRQL <= APC_LEVEL執行。
規格需求
需求 | 值 |
---|---|
目標平台 | Universal |
標頭 | fltkernel.h (包含 Fltkernel.h) |
IRQL | 請參閱一節。 |