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 |