Compartir a través de


Función FltCbdqDisable (fltkernel.h)

FltCbdqDisable deshabilita la cola de datos de devolución de llamada de un controlador de minifiltro.

Sintaxis

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

Parámetros

[in, out] Cbdq

Puntero a la cola de datos de devolución de llamada.

Valor devuelto

None

Observaciones

FltCbdqDisable deshabilita una cola de datos de devolución de llamada para que no se puedan agregar más elementos a ella.

Los controladores de minifiltro pueden usar las rutinas FltCbdqXxx para implementar una cola de datos de devolución de llamada para las operaciones de E/S basadas en IRP. Mediante el uso de estas rutinas, los controladores de minifiltro pueden hacer que sus colas sean seguras para cancelar; el sistema controla de forma transparente la cancelación de E/S para los controladores de minifiltro.

Las rutinas FltCbdqXxx solo se pueden usar para las operaciones de E/S basadas en IRP. Para determinar si una estructura de datos de devolución de llamada determinada representa una operación de E/S basada en IRP, use la macro FLT_IS_IRP_OPERATION .

Normalmente, un controlador de minifiltro llama a FltCbdqDisable durante la descarga del controlador de minifiltro o de desmontaje de instancia. Después de llamar a esta rutina, el controlador de minifiltro debe vaciar o purgar la cola. Esto se puede hacer llamando a FltCbdqRemoveNextIo repetidamente hasta que no quedan más elementos en la cola.

Consulte FltCbdqInitialize para obtener más información sobre cómo crear una cola de datos de devolución de llamada. Use FltCbdqInsertIo para agregar una solicitud de E/S a la cola. Use FltCbdqRemoveIo para quitar una solicitud de E/S determinada de la cola o FltCbdqRemoveNextIo para quitar la siguiente solicitud de E/S disponible.

Para volver a habilitar la cola después de deshabilitarla, llame a FltCbdqEnable.

Si la cola está protegida por un bloqueo de número en lugar de una variable de recurso o objeto de exclusión mutua, el autor de la llamada de FltCbdqDisable se puede ejecutar en IRQL <= DISPATCH_LEVEL. Si se usa una exclusión mutua o un recurso, el autor de la llamada debe ejecutarse en IRQL <= APC_LEVEL.

Requisitos

Requisito Value
Plataforma de destino Universal
Encabezado fltkernel.h (incluya Fltkernel.h)
IRQL vea la sección Comentarios.

Consulte también

FLT_CALLBACK_DATA_QUEUE

FLT_IS_IRP_OPERATION

FltCbdqEnable

FltCbdqInitialize

FltCbdqInsertIo

FltCbdqRemoveIo

FltCbdqRemoveNextIo