Partager via


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

Voir aussi

KsAddIrpToCancelableQueue