Función KsCancelIo (ks.h)
La función KsCancelIo cancela todos los IRP en la lista de cancelaciones especificada. Si un IRP de la lista no tiene una rutina de cancelación, solo el bit de cancelación se establece en 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 mantiene una copia de este puntero en la KSQUEUE_SPINLOCK_IRP_STORAGE(Irp) del IRP para su uso por parte de la rutina de cancelación.
Valor devuelto
Ninguno
Observaciones
KsCancelIo cancela todos los IRP de una cola determinada mantenida por el controlador. Si el IRP tiene una rutina de cancelación, se llama a la rutina de cancelación. De lo contrario, la marca cancel 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 cancela tiene una rutina de cancelación proporcionada por el controlador, el bloqueo de giro de cancelación se puede obtener del IRP llamando a KSQUEUE_SPINLOCK_IRP_STORAGE.
Requisitos
Requisito | Valor |
---|---|
de la plataforma de destino de | Universal |
encabezado de | ks.h (incluya Ks.h) |
biblioteca de | Ks.lib |
irQL | < DISPATCH_LEVEL |