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

Ninguno

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 de FltCbdqXxx para implementar una cola de datos de devolución de llamada para las operaciones de E/S basadas en IRP. Con estas rutinas, los controladores de minifiltro pueden hacer que sus colas sean seguras; el sistema controla de forma transparente la cancelación de E/S para los controladores de minifiltro.

Las rutinas de 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 estar vacío o purgar, la cola. Esto se puede hacer llamando a FltCbdqRemoveNextIo repetidamente hasta que no haya 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 objeto de exclusión mutua o variable de recurso, 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 Valor
de la plataforma de destino de Universal
encabezado de fltkernel.h (incluya Fltkernel.h)
irQL Consulte la sección Comentarios.

Consulte también

FLT_CALLBACK_DATA_QUEUE

FLT_IS_IRP_OPERATION

FltCbdqEnable

FltCbdqInitialize

FltCbdqInsertIo

FltCbdqRemoveIo

FltCbdqRemoveNextIo