Freigeben über


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 zu einem Framework-Geräteobjekt.

[in, optional] Driver

Ein Handle für das Framework-Treiberobjekt des Treibers, das der Treiber aus einem vorherigen Aufruf von WdfDriverCreate oder WdfGetDriverabgerufen 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 EvtDeviceWdmIrpDispatch Rückruffunktion des Treibers.

[in, optional] DriverContext

Ein nicht typisiertes Zeiger auf treiberdefinierte Kontextinformationen, die das Framework an die EvtDeviceWdmIrpDispatch Rückruffunktion übergibt. Dieser Parameter ist optional und kann NULL sein.

Rückgabewert

Wenn die WdfDeviceConfigureWdmIrpDispatchCallback Methode keine Fehler auftritt, wird STATUS_SUCCESS zurückgegeben. Weitere Rückgabewerte sind:

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

Bemerkungen

Ein Treiber ruft die WdfDeviceConfigureWdmIrpDispatchCallback Methode auf, um eine EvtDeviceWdmIrpDispatch Rückruffunktion zu registrieren. Das Framework ruft dann EvtDeviceWdmIrpDispatch auf, wenn es ein I/O-Anforderungspaket (IRP) mit einem IRP-Hauptfunktionscode empfängt, der dem MajorFunction Parameter dieser Methode entspricht.

Ein Treiber ruft in der Regel WdfDeviceConfigureWdmIrpDispatchCallback aus seiner EvtDriverDeviceAdd- Rückruffunktion auf.

Sie müssen WdfDeviceConfigureWdmIrpDispatchCallback einmal für jede MJ-Funktion aufrufen, für die der Treiber eine Rückruffunktion registrieren möchte. Mit anderen Worten, mehrere Aufrufe sind erforderlich, um mehrere MJ-Funktionen abzufangen.

Ein Treiber ruft möglicherweise die WdfDeviceConfigureWdmIrpDispatchCallback Methode aus folgenden Gründen auf:

  • Um ein IRP zu untersuchen und 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.
  • Um eine einzelne Anforderung auszuwählen, müssen Sie die EvtIoInCallerContext Rückruffunktion aufrufen.

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

Anforderungen

Anforderung Wert
Zielplattform- Universal
Minimale KMDF-Version 1.11
Mindest-UMDF-Version 2.17
Header- wdfdevice.h (einschließen Wdf.h)
Library Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF)
IRQL- <= DISPATCH_LEVEL
DDI-Complianceregeln DriverCreate(kmdf)

Siehe auch

EvtDeviceWdmIrpDispatch

WdfDeviceWdmDispatchIrp

WdfDeviceWdmDispatchIrpToIoQueue