WdfDeviceConfigureWdmIrpDispatchCallback-Funktion (wdfdevice.h)

[Gilt für KMDF und UMDF]

Die WdfDeviceConfigureWdmIrpDispatchCallback-Methode registriert die EvtDeviceWdmIrpDispatch-Rückruffunktion eines Treibers.

Syntax

NTSTATUS WdfDeviceConfigureWdmIrpDispatchCallback(
  [in]           WDFDEVICE                      Device,
  [in, optional] WDFDRIVER                      Driver,
  [in]           UCHAR                          MajorFunction,
                 PFN_WDFDEVICE_WDM_IRP_DISPATCH EvtDeviceWdmIrpDispatch,
  [in, optional] WDFCONTEXT                     DriverContext
);

Parameter

[in] Device

Ein Handle für ein Framework-Geräteobjekt.

[in, optional] Driver

Ein Handle für das Frameworktreiberobjekt des Treibers, das der Treiber von einem vorherigen Aufruf von WdfDriverCreate oder WdfGetDriver abgerufen hat. Dieser Parameter ist optional.

[in] MajorFunction

Einer der folgenden IRP-Hauptfunktionscodes: IRP_MJ_DEVICE_CONTROL, IRP_MJ_INTERNAL_DEVICE_CONTROL, IRP_MJ_READ, IRP_MJ_WRITE.

EvtDeviceWdmIrpDispatch

Ein Zeiger auf die Rückruffunktion EvtDeviceWdmIrpDispatch des Treibers.

[in, optional] DriverContext

Ein nicht typisierter Zeiger auf vom Treiber definierte Kontextinformationen, die das Framework an die Rückruffunktion EvtDeviceWdmIrpDispatch des Treibers übergibt. Dieser Parameter ist optional und kann NULL sein.

Rückgabewert

Wenn die WdfDeviceConfigureWdmIrpDispatchCallback-Methode keine Fehler aufweist, gibt sie STATUS_SUCCESS zurück. Weitere Rückgabewerte sind:

Rückgabecode Beschreibung
STATUS_INVALID_PARAMETER
Ein ungültiger MajorFunction-Wert wurde angegeben.
STATUS_INSUFFICIENT_RESOURCES
Nicht genügend Arbeitsspeicher war verfügbar.

Hinweise

Ein Treiber ruft die WdfDeviceConfigureWdmIrpDispatchCallback-Methode auf, um eine EvtDeviceWdmIrpDispatch-Rückruffunktion zu registrieren. Das Framework ruft dann EvtDeviceWdmIrpDispatch auf, wenn es ein E/A-Anforderungspaket (IRP) empfängt, das einen IRP-Hauptfunktionscode enthält, der dem MajorFunction-Parameter dieser Methode entspricht.

Ein Treiber ruft in der Regel WdfDeviceConfigureWdmIrpDispatchCallback über seine Rückruffunktion EvtDriverDeviceAdd auf.

Sie müssen WdfDeviceConfigureWdmIrpDispatchCallback einmal für jede MJ-Funktion aufrufen, für die der Treiber eine Rückruffunktion registrieren möchte. Anders ausgedrückt: Zum Abfangen mehrerer MJ-Funktionen sind mehrere Aufrufe erforderlich.

Ein Treiber kann die WdfDeviceConfigureWdmIrpDispatchCallback-Methode aus den folgenden Gründen aufrufen:

  • Um eine IRP zu untersuchen und sie einer bestimmten Warteschlange basierend auf domänenspezifischen Kriterien zuzuweisen, leiten Sie beispielsweise alle E/A-Vorgänge, die einem Dateiobjekt zugeordnet sind, an eine bestimmte Warteschlange weiter.
  • Zum Auswählen einer einzelnen Anforderung muss die Rückruffunktion EvtIoInCallerContext aufgerufen werden.

Weitere Informationen zum Angeben von Warteschlangen für IRPs finden Sie unter Senden von IRPs an E/A-Warteschlangen.

Anforderungen

Anforderung Wert
Zielplattform Universell
KMDF-Mindestversion 1.11
UMDF-Mindestversion 2.17
Kopfzeile wdfdevice.h (einschließen von Wdf.h)
Bibliothek Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF)
IRQL <= DISPATCH_LEVEL
DDI-Complianceregeln DriverCreate(kmdf)

Weitere Informationen

EvtDeviceWdmIrpDispatch

WdfDeviceWdmDispatchIrp

WdfDeviceWdmDispatchIrpToIoQueue