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