KsCancelIo, fonction (ks.h)
La fonction KsCancelIo annule toutes les irps dans la liste d’annulations spécifiée. Si un IRP de 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érieure.
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 spin alloué par l’appelant pour l’accès à la file d’attente. Une copie de ce pointeur est conservée dans les KSQUEUE_SPINLOCK_IRP_STORAGE(Irp) de l’IRP à utiliser par la routine d’annulation, si nécessaire.
Valeur de retour
Aucun
Remarques
KsCancelIo annule toutes les irPs 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 irps ne sont pas supprimés de la file d’attente par cette routine. Il incombe uniquement au pilote de s’assurer que les irps sont supprimés par la routine d’annulation spécifiée dans l’IRP ou 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 verrou de rotation d’annulation peut être obtenu à partir de l’IRP en appelant KSQUEUE_SPINLOCK_IRP_STORAGE.
Exigences
Exigence | Valeur |
---|---|
plateforme cible | Universel |
d’en-tête | ks.h (include Ks.h) |
bibliothèque | Ks.lib |
IRQL | < DISPATCH_LEVEL |