Partager via


WdfDeviceConfigureWdmIrpDispatchCallback, fonction (wdfdevice.h)

[S’applique à KMDF et UMDF]

La méthode WdfDeviceConfigureWdmIrpDispatchCallback enregistre la fonction de rappel EvtDeviceWdmIrpDispatch d’un pilote.

Syntaxe

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

Paramètres

[in] Device

Handle pour un objet d’appareil d’infrastructure.

[in, optional] Driver

Handle de l’objet du pilote d’infrastructure du pilote que le pilote a obtenu à partir d’un appel précédent à WdfDriverCreate ou WdfGetDriver. Ce paramètre est facultatif.

[in] MajorFunction

L’un des codes de fonction principaux IRP suivants : IRP_MJ_DEVICE_CONTROL, IRP_MJ_INTERNAL_DEVICE_CONTROL, IRP_MJ_READ, IRP_MJ_WRITE.

EvtDeviceWdmIrpDispatch

Pointeur vers la fonction de rappel EvtDeviceWdmIrpDispatch du pilote.

[in, optional] DriverContext

Pointeur non typé vers les informations de contexte définies par le pilote que le framework transmet à la fonction de rappel EvtDeviceWdmIrpDispatch du pilote. Ce paramètre est facultatif et peut être NULL.

Valeur retournée

Si la méthode WdfDeviceConfigureWdmIrpDispatchCallback ne rencontre aucune erreur, elle retourne STATUS_SUCCESS. Les valeurs de retour supplémentaires sont les suivantes :

Code de retour Description
STATUS_INVALID_PARAMETER
Une valeur MajorFunction non valide a été fournie.
STATUS_INSUFFICIENT_RESOURCES
La mémoire disponible était insuffisante.

Remarques

Un pilote appelle la méthode WdfDeviceConfigureWdmIrpDispatchCallback pour inscrire une fonction de rappel EvtDeviceWdmIrpDispatch . Le framework appelle ensuite EvtDeviceWdmIrpDispatch chaque fois qu’il reçoit un paquet de demandes d’E/S (IRP) contenant un code de fonction principale IRP qui correspond au paramètre MajorFunction de cette méthode.

Un pilote appelle généralement WdfDeviceConfigureWdmIrpDispatchCallback à partir de sa fonction de rappel EvtDriverDeviceAdd .

Vous devez appeler WdfDeviceConfigureWdmIrpDispatchCallback une fois pour chaque fonction MJ pour laquelle le pilote souhaite inscrire une fonction de rappel. En d’autres termes, plusieurs appels sont nécessaires pour intercepter plusieurs fonctions MJ.

Un pilote peut appeler la méthode WdfDeviceConfigureWdmIrpDispatchCallback pour les raisons suivantes :

  • Pour examiner un IRP et l’affecter à une file d’attente spécifique en fonction de critères spécifiques à un domaine, par exemple, dirigez toutes les E/S associées à un objet fichier vers une file d’attente particulière.
  • Pour sélectionner sur une demande individuelle la nécessité d’appeler la fonction de rappel EvtIoInCallerContext .

Pour plus d’informations sur la spécification de files d’attente pour les irPs à mesure qu’ils arrivent, consultez Dispatching IRPs to I/O Queues.

Configuration requise

Condition requise Valeur
Plateforme cible Universal
Version KMDF minimale 1.11
Version UMDF minimale 2.17
En-tête wdfdevice.h (inclure Wdf.h)
Bibliothèque Wdf01000.sys (KMDF) ; WUDFx02000.dll (UMDF)
IRQL <= DISPATCH_LEVEL
Règles de conformité DDI DriverCreate(kmdf)

Voir aussi

EvtDeviceWdmIrpDispatch

WdfDeviceWdmDispatchIrp

WdfDeviceWdmDispatchIrpToIoQueue