États de file d’attente d’E/S
L’infrastructure définit les états suivants pour les files d’attente d’E/S :
Inactif
La file d’attente d’E/S ne contient aucune demande d’E/S, et le pilote ne traite pas les demandes qu’il a reçues de la file d’attente d’E/S.
Prêt
La file d’attente d’E/S peut recevoir des demandes d’E/S de l’infrastructure, et elle peut remettre des demandes d’E/S au pilote.
Arrêté
La file d’attente d’E/S peut recevoir des demandes d’E/S de l’infrastructure, mais elle ne peut pas remettre les demandes d’E/S au pilote, et le pilote ne traite pas les demandes qu’il a reçues de la file d’attente d’E/S.
Drainé
La file d’attente d’E/S est vide, elle ne peut pas recevoir de nouvelles demandes d’E/S de l’infrastructure, et toutes les demandes d’E/S qui se trouvaient dans la file d’E/S ont été remises au pilote.
Purgé
La file d’attente d’E/S est vide, elle ne peut pas recevoir de nouvelles demandes d’E/S de l’infrastructure et toutes les demandes d’E/S qui se trouvaient dans la file d’attente d’E/S ont été annulées.
L’infrastructure peut définir une nouvelle file d’attente d’E/S à l’état prêt après que votre pilote a appelé WdfIoQueueCreate. Toutefois, les files d’attente d’E/S gérées par l’alimentation entrent dans l’état prêt uniquement si l’appareil est dans son état de fonctionnement (D0).
Votre pilote peut modifier l’état d’une file d’attente d’E/S en :
Appel de WdfIoQueueStop ou WdfIoQueueStopSynchronously pour placer la file d’attente dans son état arrêté.
Appel de WdfIoQueueDrain ou WdfIoQueueDrainSynchronously pour placer la file d’attente dans son état vide.
Appel de WdfIoQueuePurge ou WdfIoQueuePurgeSynchronously pour placer la file d’attente dans son état purgé.
Appel de WdfIoQueueStart pour rétablir l’état prêt de la file d’attente.
Pour obtenir l’état actuel d’une file d’attente d’E/S, votre pilote peut appeler WdfIoQueueGetState.