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. |