Fonction IoCsqInsertIrp (wdm.h)
La routine IoCsqInsertIrp insère un IRP dans la file d’attente IRP cancel-safe du pilote.
Syntaxe
void IoCsqInsertIrp(
[in, out] PIO_CSQ Csq,
[in, out] PIRP Irp,
[out, optional] 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] Irp
Pointeur vers l’IRP à mettre en file d’attente.
[out, optional] Context
Pointeur vers une structure IO_CSQ_IRP_CONTEXT . IoCsqInsertIrp initialise cette structure avec des informations de contexte pour l’IRP inséré. Le pilote transmet cette valeur à IoCsqRemoveIrp pour supprimer l’IRP de la file d’attente. Le contexte peut être NULL si le pilote n’utilise pas IoCsqRemoveIrp pour supprimer cette IRP de la file d’attente.
Valeur de retour
None
Remarques
IoCsqInsertIrp utilise les routines de distribution de la file d’attente pour insérer l’IRP. Routine IoCsqInsertIrp :
- Appelle la routine CsqAcquireLock de la file d’attente pour verrouiller la file d’attente.
- Appelle la routine CsqInsertIrp de la file d’attente pour insérer l’IRP.
- Marque l’IRP comme étant en attente.
- Appelle la routine CsqReleaseLock de la file d’attente pour déverrouiller la file d’attente.
Les pilotes peuvent également utiliser IoCsqInsertIrpEx pour insérer un IRP dans la file d’attente. Pour une file d’attente spécifiée par IoCsqInitializeEx, IoCsqInsertIrpEx fournit des fonctionnalités supplémentaires. Pour plus d’informations, consultez Annuler les files d’attente IRP sécurisées.
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’IoCsqInsertIrp doivent être en cours d’exécution dans un IRQL <= DISPATCH_LEVEL. Les routines de rappel du conducteur doivent fonctionner correctement au niveau de cet IRQL.