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 |
---|---|
|
Ein ungültiger MajorFunction-Wert wurde angegeben. |
|
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) |