Funzione KsCancelIo (ks.h)
La funzione KsCancelIo annulla tutti i runtime di integrazione nell'elenco di annullamento specificato. Se un IRP nell'elenco non dispone di una routine di annullamento, solo il bit di annullamento viene impostato in IRP. La funzione può essere chiamata a livello irQ DISPATCH_LEVEL o inferiore.
Sintassi
KSDDKAPI VOID KsCancelIo(
[in, out] PLIST_ENTRY QueueHead,
[in] PKSPIN_LOCK SpinLock
);
Parametri
[in, out] QueueHead
Specifica l'intestazione di una coda gestita dal driver contenente l'IRP da annullare.
[in] SpinLock
Punta a un blocco di selezione allocato dal chiamante per l'accesso alla coda. Una copia di questo puntatore viene conservata nel KSQUEUE_SPINLOCK_IRP_STORAGE(Irp) di IRP per l'uso dalla routine di annullamento, se necessario.
Valore restituito
nessuno
Osservazioni
KsCancelIo annulla tutti i runtime di integrazione in una determinata coda gestita dal driver. Se l'IRP ha una routine di annullamento, viene chiamata la routine di annullamento. In caso contrario, il flag di annullamento in IRP è impostato su TRUE. I provider di integrazione non vengono rimossi dalla coda da questa routine. È responsabilità esclusiva del driver assicurarsi che i provider di integrazione vengano rimossi dalla routine di annullamento specificata nell'IRP o da altre funzionalità fornite dal driver.
Se l'IRP annullato ha una routine di annullamento fornita dal driver, il blocco di selezione annulla può essere ottenuto dall'IRP chiamando KSQUEUE_SPINLOCK_IRP_STORAGE.
Requisiti
Requisito | Valore |
---|---|
Piattaforma di destinazione | Universale |
Intestazione | ks.h (include Ks.h) |
Libreria | Ks.lib |
IRQL | < DISPATCH_LEVEL |