Partager via


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 E/S dans une file d’attente d’E/S et l’annulation des requêtes non traitées et des requêtes annulables appartenant au pilote.

Syntaxe

VOID WdfIoQueuePurgeSynchronously(
  [in] WDFQUEUE Queue
);

Paramètres

[in] Queue

Handle vers un objet de file d’attente framework.

Valeur de retour

Aucun

Remarques

Une vérification de bogue se produit si le pilote fournit un handle d’objet non valide.

Une fois qu’un pilote appelle WdfIoQueuePurgeSynchronously, l’infrastructure cesse d’ajouter des requêtes d’E/S à la file d’attente spécifiée. L’infrastructure annule toutes les demandes qu’elle 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’état d’achèvement de STATUS_INVALID_DEVICE_STATE.

WdfIoQueuePurgeSynchronously retourne une fois toutes les demandes non traitées et détenues par le pilote 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 avec 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);

Spécifications

Besoin Valeur
plateforme cible Universel
version minimale de KMDF 1.0
version minimale de UMDF 2.0
En-tête wdfio.h (include 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