Partager via


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

Voir aussi

KsAddIrpToCancelableQueue