Partager via


WdfDeviceConfigureWdmIrpDispatchCallback, fonction (wdfdevice.h)

[S’applique à KMDF et UMDF]

La méthode WdfDeviceConfigureWdmIrpDispatchCallback inscrit la EvtDeviceWdmIrpDispatch de 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 vers un objet d’appareil framework.

[in, optional] Driver

Handle de l’objet du pilote framework 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 l’infrastructure transmet à la fonction de rappel EvtDeviceWdmIrpDispatch du pilote. Ce paramètre est facultatif et peut être NULL.

Valeur de retour

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

Retourner le code Description
STATUS_INVALID_PARAMETER
Une valeur MajorFunction non valide a été fournie.
STATUS_INSUFFICIENT_RESOURCES
Mémoire insuffisante disponible.

Remarques

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

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

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 requis pour intercepter plusieurs fonctions MJ.

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

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

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

Exigences

Exigence Valeur
plateforme cible Universel
version minimale de KMDF 1.11
version minimale de UMDF 2.17
d’en-tête wdfdevice.h (include 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