WdfIoQueueStop-Funktion (wdfio.h)

[Gilt für KMDF und UMDF]

Die WdfIoQueueStop-Methode verhindert, dass eine E/A-Warteschlange I/O-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 zu einem 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 typisiertes 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 es das Framework auf, nachdem alle Anforderungen aufgerufen wurden, die an den Treiber übermittelt wurden oder abgebrochen wurden. Sie können die IRQL ändern, bei der der Rückruf ausgeführt wird, indem Sie "ExecutionLevel " in WDF_OBJECT_ATTRIBUTES zum Erstellungszeitpunkt der Warteschlange angeben. Weitere Informationen finden Sie im Abschnitt "Hinweise" von EVT_WDF_IO_QUEUE_STATE.

Mit der WdfIoQueueStop-Methode kann die Warteschlange neue Anforderungen empfangen, auch wenn die Warteschlange keine neuen Anforderungen empfängt, bevor der Treiber WdfIoQueueStop aufgerufen wird. Vor dem Aufrufen von WdfIoQueueStop kann ein Treiber z. B. WdfIoQueueDrain aufrufen, wodurch das Framework das Hinzufügen neuer I/O-Anforderungen an die Warteschlange beendet. Der nachfolgende Aufruf von WdfIoQueueStop bewirkt, dass das Framework das Hinzufügen von Anforderungen an die Warteschlange fortsetzen kann.

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

Weitere Informationen zur WdfIoQueueStop-Methode finden Sie unter Verwalten von I/O-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, ruft er die Funktion "EvtIoQueueStateStop " eines Treibers auf.

WDFCONTEXT stopContext;

stopContext = &myContext;

WdfIoQueueStop(
               queue,
               EvtIoQueueStateStop,
               stopContext
               );

Anforderungen

   
Zielplattform Universell
KMDF-Mindestversion 1.0
UMDF-Mindestversion 2.0
Header wdfio.h (include 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)

Siehe auch

EvtIoQueueState

WdfIoQueueStart

WdfIoQueueStopSynchronously