WdfDeviceConfigureRequestDispatching-Funktion (wdfdevice.h)
[Gilt für KMDF und UMDF]
Die WdfDeviceConfigureRequestDispatching-Methode bewirkt, dass das Framework einen angegebenen Typ von E/A-Anforderungen in die Warteschlange einer angegebenen E/A-Warteschlange stellt.
Syntax
NTSTATUS WdfDeviceConfigureRequestDispatching(
[in] WDFDEVICE Device,
[in] WDFQUEUE Queue,
[in] WDF_REQUEST_TYPE RequestType
);
Parameter
[in] Device
Stellt ein Handle für ein Framework-Geräteobjekt bereit.
[in] Queue
Stellt ein Handle für ein Framework-Warteschlangenobjekt bereit.
[in] RequestType
Stellt einen WDF_REQUEST_TYPE typisierten Enumerator bereit, der den Typ der Anforderung identifiziert, die in die Warteschlange gestellt werden soll. Die einzigen gültigen Enumeratoren sind:
WdfRequestTypeCreate
WdfRequestTypeRead
WdfRequestTypeWrite
WdfRequestTypeDeviceControl
WdfRequestTypeDeviceControlInternal
Rückgabewert
Wenn der Vorgang erfolgreich ist, gibt die Methode STATUS_SUCCESS zurück. Weitere Rückgabewerte sind:
Rückgabecode | Beschreibung |
---|---|
|
Ein Eingabeparameter ist ungültig. |
|
Der verfügbare Arbeitsspeicher ist zu niedrig. |
|
Der Treiber hat dem angegebenen Anforderungstyp bereits eine Warteschlange zugewiesen. |
Die -Methode gibt möglicherweise andere NTSTATUS-Werte zurück.
Eine Fehlerüberprüfung tritt auf, wenn der Treiber ein ungültiges Objekthandle bereitstellt.
Hinweise
Jeder Aufruf von WdfDeviceConfigureRequestDispatching gibt einen Anforderungstyp an. Wenn eine einzelne E/A-Warteschlange mehrere Arten von Anforderungen empfangen soll (z. B. Lese- und Schreibanforderungen), kann Ihr Treiber WdfDeviceConfigureRequestDispatching mehrmals für eine einzelne E/A-Warteschlange aufrufen.
Weitere Informationen zu WdfDeviceConfigureRequestDispatching finden Sie unter Erstellen von E/A-Warteschlangen und Verwalten von E/A-Warteschlangen.
Beispiele
Im folgenden Codebeispiel wird eine WDF_IO_QUEUE_CONFIG-Struktur initialisiert, eine E/A-Warteschlange erstellt und anschließend die Warteschlange so konfiguriert, dass sie Schreibanforderungen empfängt.
WDF_IO_QUEUE_CONFIG queueConfig;
WDFQUEUE WriteQueue;
WDF_IO_QUEUE_CONFIG_INIT(
&queueConfig,
WdfIoQueueDispatchSequential
);
queueConfig.EvtIoWrite = MyEvtIoWrite;
status = WdfIoQueueCreate(
Device,
&queueConfig,
WDF_NO_OBJECT_ATTRIBUTES,
&WriteQueue
);
if(!NT_SUCCESS(status)) {
return status;
}
status = WdfDeviceConfigureRequestDispatching(
Device,
WriteQueue,
WdfRequestTypeWrite
);
if(!NT_SUCCESS(status)) {
return status;
}
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform | Universell |
KMDF-Mindestversion | 1.0 |
UMDF-Mindestversion | 2.0 |
Kopfzeile | wdfdevice.h (einschließen von Wdf.h) |
Bibliothek | Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF) |
IRQL | <= DISPATCH_LEVEL |
DDI-Complianceregeln | DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf) |