Compartir a través de


Función FltCancelIo (fltkernel.h)

La rutina FltCancelIo cancela una operación de E/S.

Sintaxis

BOOLEAN FLTAPI FltCancelIo(
  [in] PFLT_CALLBACK_DATA CallbackData
);

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.

Valor devuelto

FltCancelIo devuelve TRUE si la operación de E/S se canceló correctamente. De lo contrario, devuelve FALSE.

Comentarios

Un controlador de minifiltro que inicia una operación de E/S llamando a una rutina como FltPerformAsynchronousIo puede cancelar la operación llamando a FltCancelIo. La operación debe ser una operación de E/S basada en IRP, no debe publicarse actualmente en la propia cola de trabajo del controlador de minifiltro y no debe haberse completado.

Si el IRP tiene una rutina de cancelación, FltCancelIo establece el bit de cancelación del IRP y llama a la rutina de cancelación.

Si el IRP no tiene una rutina de cancelación y, por lo tanto, el IRP no se puede cancelar, FltCancelIo establece el bit de cancelación del IRP y devuelve FALSE. El IRP debe cancelarse más adelante cuando se pueda cancelar.

Si un controlador de minifiltro que no inició la operación de E/S basada en IRP llama a FltCancelIo, los resultados son impredecibles. Por ejemplo, el IRP podría completarse con un código NTSTATUS correcto aunque se estableció su bit de cancelación.

FltCancelIo devuelve FALSE si se cumple alguna de las condiciones siguientes:

  • La operación no es una operación de E/S basada en IRP.
  • No se especifica ninguna rutina de cancelación para la operación de E/S.
  • La operación de E/S ya se ha cancelado.
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.

Para especificar una rutina de cancelación para una operación de E/S, llame a FltSetCancelCompletion.

Para borrar una rutina de cancelación establecida para una operación de E/S, llame a FltClearCancelCompletion.

Requisitos

Requisito Value
Plataforma de destino Universal
Encabezado fltkernel.h (incluya FltKernel.h)
Library FltMgr.lib
IRQL <= DISPATCH_LEVEL

Consulte también

FLT_CALLBACK_DATA

FLT_IS_IRP_OPERATION

FltClearCancelCompletion

FltPerformAsynchronousIo

FltReadFile

FltSetCancelCompletion

FltWriteFile