Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
[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) |