Freigeben über


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
STATUS_INVALID_PARAMETER
Ein Eingabeparameter ist ungültig.
STATUS_INSUFFICIENT_RESOURCES
Der verfügbare Arbeitsspeicher ist zu niedrig.
STATUS_WDF_BUSY
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)

Weitere Informationen

WDF_IO_QUEUE_CONFIG_INIT

WdfIoQueueErstellen