IoCsqRemoveNextIrp, fonction (wdm.h)
La routine IoCsqRemoveNextIrp supprime l’IRP correspondante suivante dans la file d’attente.
Syntaxe
PIRP IoCsqRemoveNextIrp(
[in, out] PIO_CSQ Csq,
[in, optional] PVOID PeekContext
);
Paramètres
[in, out] Csq
Pointeur vers la table de distribution du pilote pour les files d’attente IRP annulées. La table de répartition doit être initialisée par IoCsqInitialize.
[in, optional] PeekContext
Pointeur vers une valeur de contexte définie par le pilote. IoCsqRemoveNextIrp transmet ce paramètre à la routine CsqPeekNextIrp du pilote. Pour plus d’informations, consultez la section Remarques suivante.
Valeur de retour
Cette routine retourne un pointeur vers l’IRP correspondante suivante dans la file d’attente, ou NULL si aucun autre FOURNISSEUR d’intégration n’est disponible. La routine retourne uniquement les irps qui n’ont pas encore été annulées.
Remarques
IoCsqRemoveNextIrp utilise les routines de répartition de la file d’attente pour supprimer l’IRP. La routine IoCsqRemoveNextIrp :
- Appelle la routine CsqAcquireLock de la file d’attente pour verrouiller la file d’attente.
- Appelle la routine de CsqPeekNextIrp de la file d’attente pour rechercher le protocole IRP correspondant suivant dans la file d’attente. IoCsqRemoveNextIrp passe la valeur du paramètre PeekContext en tant que paramètre PeekContext de CsqPeekNextIrp. CsqPeekNextIrp retourne un pointeur vers l’IRP correspondant suivant, ou NULL s’il n’existe aucun IRP correspondant.
- Si la valeur de retour de CsqPeekNextIrp n’est pasNULL, IoCsqRemoveNextIrp appelle la routine CsqRemoveIrp de la file d’attente pour supprimer l’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 des informations de contexte IRP. Les pilotes qui utilisent ces routines pour mettre en file d’attente les fournisseurs d’intégration doivent laisser ce membre inutilisé.
Les appelants de IoCsqRemoveNextIrp doivent s’exécuter à un <IRQL = DISPATCH_LEVEL. Les routines de rappel du pilote doivent fonctionner correctement à ce runtime IRQL.
Exigences
Exigence | Valeur |
---|---|
client minimum pris en charge | Disponible dans Windows XP et versions ultérieures de Windows. Les pilotes qui doivent également fonctionner sur Windows 2000 et Windows 98/Me peuvent à la place lier à Csq.lib pour utiliser la routine. |
plateforme cible | Universel |
d’en-tête | wdm.h (include Wdm.h, Ntddk.h, Ntifs.h) |
bibliothèque | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= DISPATCH_LEVEL (voir la section Remarques) |