Compartir a través de


Función FltCancelIo (fltkernel.h)

La rutina de 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.

Observaciones

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

Si un controlador de minifiltro que no inició las llamadas de operación de E/S basadas en IRP 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 Valor
de la plataforma de destino de Universal
encabezado de fltkernel.h (incluya FltKernel.h)
biblioteca de FltMgr.lib
irQL <= DISPATCH_LEVEL

Consulte también

FLT_CALLBACK_DATA

FLT_IS_IRP_OPERATION

FltClearCancelCompletion

FltPerformAsynchronousIo

FltReadFile

FltSetCancelCompletion

FltWriteFile