Función KsCancelIo (ks.h)

La función KsCancelIo cancela todas las IRP en la lista de cancelaciones especificada. Si un IRP de la lista no tiene una rutina de cancelación, solo se establece el bit de cancelación en el IRP. Se puede llamar a la función en el nivel irQ DISPATCH_LEVEL o inferior.

Sintaxis

KSDDKAPI VOID KsCancelIo(
  [in, out] PLIST_ENTRY QueueHead,
  [in]      PKSPIN_LOCK SpinLock
);

Parámetros

[in, out] QueueHead

Especifica el encabezado de una cola mantenida por el controlador que contiene el IRP que se va a cancelar.

[in] SpinLock

Apunta a un bloqueo de número asignado por el autor de la llamada para el acceso a la cola. Si es necesario, se conserva una copia de este puntero en el KSQUEUE_SPINLOCK_IRP_STORAGE(Irp) del IRP para que lo use la rutina de cancelación.

Valor devuelto

None

Observaciones

KsCancelIo cancela todas las IRP de una cola de mantenimiento de controladores determinada. Si el IRP tiene una rutina de cancelación, se llama a la rutina de cancelación. De lo contrario, la marca de cancelación del IRP se establece en TRUE. Esta rutina no quita los IRP de la cola. Es responsabilidad exclusiva del controlador asegurarse de que las IRP se quitan mediante la rutina de cancelación especificada en el IRP o por alguna otra funcionalidad proporcionada por el controlador.

Si el IRP que se va a cancelar tiene una rutina de cancelación proporcionada por el controlador, el bloqueo de número de cancelación se puede obtener del IRP llamando a KSQUEUE_SPINLOCK_IRP_STORAGE.

Requisitos

Requisito Value
Plataforma de destino Universal
Encabezado ks.h (incluya Ks.h)
Library Ks.lib
IRQL < DISPATCH_LEVEL

Consulte también

KsAddIrpToCancelableQueue