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 |
---|---|
|
Une valeur MajorFunction non valide a été fournie. |
|
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) |