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