WdfIoQueuePurgeSynchronously, fonction (wdfio.h)
[S’applique à KMDF et UMDF]
La méthode WdfIoQueuePurgeSynchronously entraîne l’arrêt de la mise en file d’attente des demandes d’E/S dans une file d’attente d’E/S et l’annulation des demandes non traitées et des demandes annulables appartenant au pilote.
Syntaxe
void WdfIoQueuePurgeSynchronously(
[in] WDFQUEUE Queue
);
Paramètres
[in] Queue
Handle pour un objet de file d’attente d’infrastructure.
Valeur de retour
None
Remarques
Un bogue case activée se produit si le pilote fournit un handle d’objet non valide.
Après qu’un pilote a appelé WdfIoQueuePurgeSynchronously, l’infrastructure cesse d’ajouter des demandes d’E/S à la file d’attente spécifiée. Le framework annule toutes les demandes qu’il n’a pas remises au pilote. Si l’infrastructure reçoit des demandes supplémentaires pour la file d’attente, elle les termine avec une valeur d’achèvement status de STATUS_INVALID_DEVICE_STATE.
WdfIoQueuePurgeSynchronously retourne une fois que toutes les demandes non traitées et appartenant au pilote sont terminées ou annulées.
Une fois qu’un pilote a vidé une file d’attente d’E/S, il peut redémarrer la file d’attente en appelant WdfIoQueueStart.
N’appelez pas WdfIoQueuePurgeSynchronously à partir des fonctions de rappel d’événement d’objet file d’attente suivantes, quelle que soit la file d’attente à laquelle la fonction de rappel d’événement est associée :
EvtIoDefaultEvtIoDeviceControlEvtIoInternalDeviceControlEvtIoReadEvtIoWrite Pour plus d’informations sur la méthode WdfIoQueuePurgeSynchronously , consultez Managing I/O Queues.
Exemples
L’exemple de code suivant vide une file d’attente d’E/S spécifiée.
WdfIoQueuePurgeSynchronously(ReadQueue);
Configuration requise
Condition requise | Valeur |
---|---|
Plateforme cible | Universal |
Version KMDF minimale | 1.0 |
Version UMDF minimale | 2.0 |
En-tête | wdfio.h (inclure Wdf.h) |
Bibliothèque | Wdf01000.sys (KMDF) ; WUDFx02000.dll (UMDF) |
IRQL | PASSIVE_LEVEL |
Règles de conformité DDI | ChangeQueueState(kmdf), DriverCreate(kmdf), EvtSurpriseRemoveNoSuspendQueue(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf), NoCancelFromEvtSurpriseRemove(kmdf), NoIoQueuePurgeSynchronously(kmdf) |