Condividi tramite


Funzione WdfDeviceConfigureWdmIrpDispatchCallback (wdfdevice.h)

[Si applica a KMDF e UMDF]

Il metodo WdfDeviceConfigureWdmIrpDispatchCallback registra la funzione di callback EvtDeviceWdmIrpDispatch di un driver.

Sintassi

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

Parametri

[in] Device

Handle per un oggetto dispositivo framework.

[in, optional] Driver

Handle all'oggetto driver del framework del driver ottenuto da una chiamata precedente a WdfDriverCreate o WdfGetDriver. Questo parametro è facoltativo e,

[in] MajorFunction

Uno dei codici di funzione principali di IRP seguenti: IRP_MJ_DEVICE_CONTROL, IRP_MJ_INTERNAL_DEVICE_CONTROL, IRP_MJ_READ, IRP_MJ_WRITE.

EvtDeviceWdmIrpDispatch

Puntatore alla funzione di callback EvtDeviceWdmIrpDispatch del driver.

[in, optional] DriverContext

Puntatore non tipizzato alle informazioni sul contesto definite dal driver che il framework passa alla funzione di callback EvtDeviceWdmIrpDispatch del driver. Questo parametro è facoltativo e può essere NULL.

Valore restituito

Se il metodo WdfDeviceConfigureWdmIrpDispatchCallback non rileva errori, restituisce STATUS_SUCCESS. I valori restituiti aggiuntivi includono:

Codice restituito Descrizione
STATUS_INVALID_PARAMETER
È stato fornito un valore MajorFunction non valido.
STATUS_INSUFFICIENT_RESOURCES
Memoria insufficiente disponibile.

Commenti

Un driver chiama il metodo WdfDeviceConfigureWdmIrpDispatchCallback per registrare una funzione di callback EvtDeviceWdmIrpDispatch . Il framework chiama quindi EvtDeviceWdmIrpDispatch ogni volta che riceve un pacchetto di richiesta I/O contenente un codice di funzione principale IRP che corrisponde al parametro MajorFunction di questo metodo.

Un driver chiama in genere WdfDeviceConfigureWdmIrpDispatchCallback dalla relativa funzione EvtDriverDeviceAdd callback.

È necessario chiamare WdfDeviceConfigureWdmIrpDispatchCallback una volta per ogni funzione MJ per cui il driver vuole registrare una funzione di callback. In altre parole, sono necessarie più chiamate per intercettare più funzioni MJ.

Un driver potrebbe chiamare il metodo WdfDeviceConfigureWdmIrpDispatchCallback per questi motivi:

  • Per esaminare un'IRP e assegnarla a una coda specifica in base a criteri specifici del dominio, ad esempio, indirizzare tutti gli I/O associati a un oggetto file a una determinata coda.
  • Per selezionare una singola richiesta, la necessità di chiamare la funzione di callback EvtIoInCallerContext .

Per altre informazioni sulla specifica delle code per i provider di servizi di integrazione al loro arrivo, vedere Invio di IRP alle code di I/O.

Requisiti

Requisito Valore
Piattaforma di destinazione Universale
Versione KMDF minima 1.11
Versione UMDF minima 2.17
Intestazione wdfdevice.h (includere Wdf.h)
Libreria Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF)
IRQL <= DISPATCH_LEVEL
Regole di conformità DDI DriverCreate(kmdf)

Vedi anche

EvtDeviceWdmIrpDispatch

WdfDeviceWdmDispatchIrp

WdfDeviceWdmDispatchIrpToIoQueue