Función FltSetCancelCompletion (fltkernel.h)
Un controlador de minifiltro llama a FltSetCancelCompletion para especificar una rutina de cancelación a la que se llamará si se cancela una operación de E/S determinada.
Sintaxis
NTSTATUS FLTAPI FltSetCancelCompletion(
[in] PFLT_CALLBACK_DATA CallbackData,
[in] PFLT_COMPLETE_CANCELED_CALLBACK CanceledCallback
);
Parámetros
[in] CallbackData
Puntero a la estructura de datos de devolución de llamada (FLT_CALLBACK_DATA) para la operación de E/S. La operación debe ser una operación de E/S basada en IRP y no debe ser una operación de E/S de paginación. 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 . Este parámetro es obligatorio y no puede ser NULL.
[in] CanceledCallback
Puntero a una rutina de cancelación proporcionada por el autor de la llamada. El Administrador de filtros llama a esta rutina si se cancela la operación de E/S representada por CallbackData .
Esta rutina se declara de la siguiente manera:
typedef VOID
(*PFLT_COMPLETE_CANCELED_CALLBACK) (
IN PFLT_CALLBACK_DATA CallbackData
);
CallbackData
Puntero a la estructura FLT_CALLBACK_DATA para la operación de E/S.
Valor devuelto
FltSetCancelCompletion devuelve STATUS_SUCCESS o un valor NTSTATUS adecuado.
Comentarios
FltSetCancelCompletion especifica una rutina de cancelación para una operación de E/S basada en IRP que se va a publicar en una cola de trabajo.
Los controladores de minifiltro suelen llamar a FltSetCancelCompletion para una operación de E/S inmediatamente antes de llamar a FltQueueDeferredIoWorkItem para publicar la operación en una cola de trabajo.
No llame a FltSetCancelCompletion para cualquier operación de E/S que se publique en una cola de datos de devolución de llamada segura para cancelación mediante las rutinas FltCbdqXxx .
El Administrador de filtros llama a la rutina CanceledCallback sin mantener el bloqueo de giro de cancelación del sistema ni realizar ninguna otra sincronización. El propio controlador de minifiltro debe proporcionar cualquier sincronización necesaria.
Para cancelar una operación de E/S, llame a FltCancelIo.
Requisitos
Requisito | Value |
---|---|
Plataforma de destino | Universal |
Encabezado | fltkernel.h (incluya Fltkernel.h) |
Library | FltMgr.lib |
Archivo DLL | Fltmgr.sys |
IRQL | <= DISPATCH_LEVEL |