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)

Voir aussi

WdfIoQueuePurge