WdfIoQueueStop-Funktion (wdfio.h)

[Gilt für KMDF und UMDF]

Die WdfIoQueueStop-Methode verhindert, dass eine E/A-Warteschlange E/A-Anforderungen liefert, aber die Warteschlange empfängt und speichert neue Anforderungen.

Syntax

void WdfIoQueueStop(
  [in]           WDFQUEUE               Queue,
  [in, optional] PFN_WDF_IO_QUEUE_STATE StopComplete,
  [in, optional] WDFCONTEXT             Context
);

Parameter

[in] Queue

Ein Handle für ein Framework-Warteschlangenobjekt.

[in, optional] StopComplete

Ein Zeiger auf eine vom Treiber bereitgestellte EvtIoQueueState-Rückruffunktion . Dieser Parameter ist optional und kann NULL sein.

[in, optional] Context

Ein nicht typisierter Zeiger auf vom Treiber bereitgestellte Kontextinformationen, die das Framework an die Rückruffunktion EvtIoQueueState übergibt. Dieser Parameter ist optional und kann NULL sein.

Rückgabewert

Keine

Bemerkungen

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

Wenn der Treiber eine EvtIoQueueState-Rückruffunktion bereitstellt, ruft das Framework diese auf, nachdem alle Anforderungen, die an den Treiber übermittelt wurden, abgeschlossen oder abgebrochen wurden. Sie können die IRQL ändern, an der der Rückruf ausgeführt wird, indem Sie executionLevel in WDF_OBJECT_ATTRIBUTES zum Zeitpunkt der Warteschlangenerstellung angeben. Weitere Informationen finden Sie im Abschnitt Hinweise vonEVT_WDF_IO_QUEUE_STATE.

Die WdfIoQueueStop-Methode ermöglicht es der Warteschlange, neue Anforderungen zu empfangen, auch wenn die Warteschlange keine neuen Anforderungen vor dem Treiber mit dem Namen WdfIoQueueStop empfangen hat. Vor dem Aufruf von WdfIoQueueStop kann beispielsweise ein Treiber WdfIoQueueDrain aufrufen, wodurch das Framework das Hinzufügen neuer E/A-Anforderungen zur Warteschlange beendet. Der nachfolgende Aufruf von WdfIoQueueStop durch den Treiber bewirkt, dass das Framework das Hinzufügen von Anforderungen zur Warteschlange fortsetzen kann.

Ein Treiber darf WdfIoQueueDrain nach dem Aufruf von WdfIoQueueStop erst aufrufen, wenn er die Warteschlange durch Aufrufen von WdfIoQueueStart neu gestartet hat.

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

Beispiele

Im folgenden Codebeispiel wird eine angegebene E/A-Warteschlange beendet. Wenn alle Anforderungen, die an den Treiber übermittelt wurden, abgeschlossen oder abgebrochen wurden, wird die EvtIoQueueStateStop-Funktion eines Treibers aufgerufen.

WDFCONTEXT stopContext;

stopContext = &myContext;

WdfIoQueueStop(
               queue,
               EvtIoQueueStateStop,
               stopContext
               );

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 <= DISPATCH_LEVEL
DDI-Complianceregeln ChangeQueueState(kmdf), DriverCreate(kmdf), EvtSurpriseRemoveNoSuspendQueue(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf), NoCancelFromEvtSurpriseRemove(kmdf)

Weitere Informationen

EvtIoQueueState

WdfIoQueueStart

WdfIoQueueStopSynchronously