Freigeben über


WdfDeviceConfigureRequestDispatching-Funktion (wdfdevice.h)

[Gilt für KMDF und UMDF]

Die WdfDeviceConfigureRequestDispatching Methode bewirkt, dass das Framework einen bestimmten Typ von E/A-Anforderungen in eine angegebene E/A-Warteschlange in die Warteschlange einreiht.

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-typed-Enumerator bereit, der den Typ der Anforderung identifiziert, die in die Warteschlange gestellt werden soll. Die einzigen gültigen Enumerationen 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-Wertezurück.

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

Bemerkungen

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 WdfDeviceConfigureRequestDispatchingfinden 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- Universal
Minimale KMDF-Version 1.0
Mindest-UMDF-Version 2.0
Header- wdfdevice.h (einschließen Wdf.h)
Library Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF)
IRQL- <= DISPATCH_LEVEL
DDI-Complianceregeln DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf)

Siehe auch

WDF_IO_QUEUE_CONFIG_INIT

WdfIoQueueCreate