Fonction IoCsqRemoveIrp (wdm.h)
La routine IoCsqRemoveIrp supprime un IRP particulier de la file d’attente.
Syntaxe
PIRP IoCsqRemoveIrp(
[in, out] PIO_CSQ Csq,
[in, out] PIO_CSQ_IRP_CONTEXT Context
);
Paramètres
[in, out] Csq
Pointeur vers la structure IO_CSQ pour la file d’attente IRP cancel-safe du pilote. Cette structure doit avoir été initialisée par IoCsqInitialize ou IoCsqInitializeEx.
[in, out] Context
Pointeur vers la structure IO_CSQ_IRP_CONTEXT qui identifie l’IRP à supprimer. La structure IO_CSQ_IRP_CONTEXT est initialisée par IoCsqInsertIrp ou IoCsqInsertIrpEx lorsque l’IRP est inséré pour la première fois dans la file d’attente.
Valeur retournée
Cette routine retourne un pointeur vers l’IRP qui a été supprimé de la file d’attente, ou NULL si cette IRP a été annulée.
Remarques
IoCsqRemoveIrp utilise les routines de répartition de la file d’attente pour supprimer l’IRP. Routine IoCsqRemoveIrp :
- Appelle la routine CsqAcquireLock de la file d’attente pour verrouiller la file d’attente.
- Utilise le paramètre IrpContext pour déterminer l’IRP à supprimer et appelle la routine CsqRemoveIrp de la file d’attente pour supprimer cette IRP.
- Appelle la routine CsqReleaseLock de la file d’attente pour déverrouiller la file d’attente.
Notez que les routines IoCsqXxx utilisent le membre DriverContext[3] de l’IRP pour contenir les informations de contexte IRP. Les pilotes qui utilisent ces routines pour mettre en file d’attente les IRP doivent laisser ce membre inutilisé.
Les appelants d’IoCsqRemoveIrp doivent être en cours d’exécution au niveau d’un IRQL <= DISPATCH_LEVEL. Les routines de rappel du conducteur doivent fonctionner correctement au niveau de cet IRQL.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Disponible dans Windows XP et les versions ultérieures de Windows. Les pilotes qui doivent également fonctionner dans Windows 2000 et Windows 98/Me peuvent à la place lier à Csq.lib pour utiliser la routine. |
Plateforme cible | Universal |
En-tête | wdm.h (inclure Wdm.h, Ntddk.h, Ntifs.h) |
Bibliothèque | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= DISPATCH_LEVEL (voir la section Remarques) |