Freigeben über


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
);

Die 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-werden.

[in, optional] Context

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

Rückgabewert

Nichts

Bemerkungen

Wenn der Treiber ein ungültiges Objekthandle bereitstellt, tritt eine Fehlerüberprüfung auf.

Wenn der Treiber eine EvtIoQueueState Rückruffunktion bereitstellt, ruft das Framework sie auf, nachdem alle Anforderungen, die an den Treiber übermittelt wurden, abgeschlossen 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 Zeitpunkt der Warteschlangenerstellung angeben. Weitere Informationen finden Sie im Abschnitt "Hinweise" vonEVT_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 WdfIoQueueStopaufgerufen wird. Vor dem Aufrufen WdfIoQueueStop-kann ein Treiber z. B. WdfIoQueueDrainaufrufen, wodurch das Framework das Hinzufügen neuer E/A-Anforderungen an die Warteschlange beendet. Der nachfolgende Aufruf WdfIoQueueStop bewirkt, dass das Framework das Hinzufügen von Anforderungen zur Warteschlange fortsetzen kann.

Ein Treiber darf nicht WdfIoQueueDrain aufrufen, nachdem WdfIoQueueStop- aufgerufen wurde, bis er die Warteschlange neu gestartet hat, indem WdfIoQueueStartaufgerufen wird.

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, ruft sie die EvtIoQueueStateStop-Funktion eines Treibers auf.

WDFCONTEXT stopContext;

stopContext = &myContext;

WdfIoQueueStop(
               queue,
               EvtIoQueueStateStop,
               stopContext
               );

Anforderungen

Anforderung Wert
Zielplattform universell
Minimale KMDF-Version 1.0
Mindest-UMDF-Version 2.0
Kopfzeile wdfio.h (einschließen 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