KsCancelIo, fonction (ks.h)
La fonction KsCancelIo annule tous les IRP figurant dans la liste d’annulation spécifiée. Si un IRP dans la liste n’a pas de routine d’annulation, seul le bit d’annulation est défini dans l’IRP. La fonction peut être appelée au niveau IRQ DISPATCH_LEVEL ou inférieur.
Syntaxe
KSDDKAPI VOID KsCancelIo(
[in, out] PLIST_ENTRY QueueHead,
[in] PKSPIN_LOCK SpinLock
);
Paramètres
[in, out] QueueHead
Spécifie la tête d’une file d’attente gérée par le pilote contenant les IRP à annuler.
[in] SpinLock
Pointe vers un verrou de rotation alloué à l’appelant pour l’accès à la file d’attente. Une copie de ce pointeur est conservée dans le KSQUEUE_SPINLOCK_IRP_STORAGE (Irp) de l’IRP pour une utilisation par la routine d’annulation, si nécessaire.
Valeur de retour
None
Remarques
KsCancelIo annule tous les IRP dans une file d’attente gérée par le pilote donnée. Si l’IRP a une routine d’annulation, la routine d’annulation est appelée. Sinon, l’indicateur d’annulation dans l’IRP est défini sur TRUE. Les IRP ne sont pas supprimés de la file d’attente par cette routine. Il est de la seule responsabilité du pilote de s’assurer que les IRP sont supprimés soit par la routine d’annulation spécifiée dans l’IRP, soit par d’autres fonctionnalités fournies par le pilote.
Si l’IRP en cours d’annulation a une routine d’annulation fournie par le pilote, le verrouillage de rotation d’annulation peut être obtenu à partir de l’IRP en appelant KSQUEUE_SPINLOCK_IRP_STORAGE.
Configuration requise
Condition requise | Valeur |
---|---|
Plateforme cible | Universal |
En-tête | ks.h (inclure Ks.h) |
Bibliothèque | Ks.lib |
IRQL | < DISPATCH_LEVEL |