Partager via


WdfDeviceWdmDispatchIrpToIoQueue, fonction (wdfdevice.h)

[S’applique à KMDF et UMDF]

La méthode WdfDeviceWdmDispatchIrpToIoQueue transfère l’IRP vers une file d’E/S spécifiée.

Syntaxe

NTSTATUS WdfDeviceWdmDispatchIrpToIoQueue(
  [in] WDFDEVICE Device,
  [in] PIRP      Irp,
  [in] WDFQUEUE  Queue,
  [in] ULONG     Flags
);

Paramètres

[in] Device

Handle d’un objet d’appareil framework.

[in] Irp

Pointeur vers une structure IRP.

[in] Queue

Handle d’un objet de file d’attente d’infrastructure.

[in] Flags

OR au niveau du bit des indicateurs de type WDF_DISPATCH_IRP_TO_IO_QUEUE_FLAGS.

Valeur retournée

La méthode WdfDeviceWdmDispatchIrpToIoQueue retourne une valeur NTSTATUS que le framework ou le pilote fournit à la suite du traitement de l’IRP. Le pilote doit utiliser cette valeur de retour comme valeur de retour pour la fonction de rappel EvtDeviceWdmIrpDispatch ou EvtDeviceWdmIrpPreprocess qui a appelé WdfDeviceWdmDispatchIrpToIoQueue.

Un bogue case activée se produit si un pilote KMDF fournit un handle d’objet non valide. Si un pilote UMDF fournit un handle non valide, le processus hôte du pilote se termine.

Remarques

Un pilote appelle WdfDeviceWdmDispatchIrpToIoQueue pour spécifier une file d’attente cible pour un IRP entrant.

Le pilote peut appeler cette méthode à partir de sa routine de rappel EvtDeviceWdmIrpPreprocess ou de son rappel EvtDeviceWdmIrpDispatch .

Si le pilote appelle WdfDeviceWdmDispatchIrpToIoQueue à partir d’une fonction de rappel EvtDeviceWdmIrpPreprocess , le pilote doit appeler IoSkipCurrentIrpStackLocation ou IoCopyCurrentIrpStackLocationToNext avant d’appeler WdfDeviceWdmDispatchIrpToIoQueue.

Pour plus d’informations sur la spécification des files d’attente pour les IRP à mesure qu’ils arrivent, consultez Répartition des IRP vers les files d’attente d’E/S.

Configuration requise

Condition requise Valeur
Plateforme cible Universal
Version KMDF minimale 1.11
Version UMDF minimale 2.17
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), FwdIrpToIoQueueValid(kmdf)

Voir aussi

EvtDeviceWdmIrpDispatch

EvtDeviceWdmIrpPreprocess