Freigeben über


WdfIoQueuePurgeSynchronously-Funktion (wdfio.h)

[Gilt für KMDF und UMDF]

Die WdfIoQueuePurgeSynchronously-Methode bewirkt, dass das Framework das Anstehen von E/A-Anforderungen an eine E/A-Warteschlange beendet und nicht verarbeitete Anforderungen und treibereigene abbrechbare Anforderungen abbricht.

Syntax

void WdfIoQueuePurgeSynchronously(
  [in] WDFQUEUE Queue
);

Parameter

[in] Queue

Ein Handle für ein Framework-Warteschlangenobjekt.

Rückgabewert

Keine

Bemerkungen

Eine Fehlerüberprüfung tritt auf, wenn der Treiber ein ungültiges Objekthandle bereitstellt.

Nachdem ein Treiber WdfIoQueuePurgeSynchronously aufgerufen hat, beendet das Framework das Hinzufügen von E/A-Anforderungen zur angegebenen Warteschlange. Das Framework bricht alle Anforderungen ab, die es nicht an den Treiber übermittelt hat. Wenn das Framework zusätzliche Anforderungen für die Warteschlange empfängt, schließt es diese mit einer Vervollständigung status Wert STATUS_INVALID_DEVICE_STATE ab.

WdfIoQueuePurgeSynchronously gibt zurück, nachdem alle unverarbeiteten und treibereigenen Anforderungen abgeschlossen oder abgebrochen wurden.

Nachdem ein Treiber eine E/A-Warteschlange gelöscht hat, kann er die Warteschlange neu starten, indem er WdfIoQueueStart aufruft.

Rufen Sie WdfIoQueuePurgeSynchronly nicht aus den folgenden Ereignisrückruffunktionen des Warteschlangenobjekts auf, unabhängig von der Warteschlange, der die Ereignisrückruffunktion zugeordnet ist:

EvtIoDefaultEvtIoDeviceControlEvtIoInternalDeviceControlEvtIoReadEvtIoWrite Weitere Informationen zur WdfIoQueuePurgeSynchronously-Methode finden Sie unter Verwalten von E/A-Warteschlangen.

Beispiele

Im folgenden Codebeispiel wird eine angegebene E/A-Warteschlange gelöscht.

WdfIoQueuePurgeSynchronously(ReadQueue);

Anforderungen

Anforderung Wert
Zielplattform Universell
KMDF-Mindestversion 1.0
UMDF-Mindestversion 2.0
Kopfzeile wdfio.h (einschließen von Wdf.h)
Bibliothek Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF)
IRQL PASSIVE_LEVEL
DDI-Complianceregeln ChangeQueueState(kmdf), DriverCreate(kmdf), EvtSurpriseRemoveNoSuspendQueue(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf), NoCancelFromEvtSurpriseRemove(kmdf), NoIoQueuePurgeSynchronously(kmdf)

Weitere Informationen

WdfIoQueuePurge