Partager via


WdfDeviceConfigureRequestDispatching, fonction (wdfdevice.h)

[S’applique à KMDF et UMDF]

La méthode WdfDeviceConfigureRequestDispatching entraîne la file d’attente d’un type spécifié de requêtes d’E/S vers une file d’attente d’E/S spécifiée.

Syntaxe

NTSTATUS WdfDeviceConfigureRequestDispatching(
  [in] WDFDEVICE        Device,
  [in] WDFQUEUE         Queue,
  [in] WDF_REQUEST_TYPE RequestType
);

Paramètres

[in] Device

Fournit un handle à un objet d’appareil framework.

[in] Queue

Fournit un handle à un objet de file d’attente d’infrastructure.

[in] RequestType

Fournit un énumérateur WDF_REQUEST_TYPE-typé qui identifie le type de requête à mettre en file d’attente. Les seuls énumérateurs valides sont les suivants :

WdfRequestTypeCreate

WdfRequestTypeRead

WdfRequestTypeWrite

WdfRequestTypeDeviceControl

WdfRequestTypeDeviceControlInternal

Valeur de retour

Si l’opération réussit, la méthode retourne STATUS_SUCCESS. Les valeurs de retour supplémentaires sont les suivantes :

Retourner le code Description
STATUS_INVALID_PARAMETER
Un paramètre d’entrée n’est pas valide.
STATUS_INSUFFICIENT_RESOURCES
La quantité de mémoire disponible est trop faible.
STATUS_WDF_BUSY
Le pilote a déjà affecté une file d’attente au type de requête spécifié.
 

La méthode peut retourner d’autres valeurs NTSTATUS .

Une vérification de bogue se produit si le pilote fournit un handle d’objet non valide.

Remarques

Chaque appel à WdfDeviceConfigureRequestDispatching spécifie un type de requête. Si vous souhaitez qu’une file d’attente d’E/S unique reçoive plusieurs types de requêtes (par exemple, des demandes de lecture et d’écriture), votre pilote peut appeler WdfDeviceConfigureRequestDispatching plusieurs fois pour une file d’attente d’E/S unique.

Pour plus d’informations sur WdfDeviceConfigureRequestDispatching, consultez Création de files d’attente d’E/S et Gestion des files d’attente d’E/S.

Exemples

L’exemple de code suivant initialise une structure de WDF_IO_QUEUE_CONFIG, crée une file d’attente d’E/S, puis configure la file d’attente afin qu’elle reçoive des demandes d’écriture.

WDF_IO_QUEUE_CONFIG queueConfig;
WDFQUEUE WriteQueue;

WDF_IO_QUEUE_CONFIG_INIT(
                         &queueConfig,
                         WdfIoQueueDispatchSequential
                         );
queueConfig.EvtIoWrite = MyEvtIoWrite;
status = WdfIoQueueCreate(
                          Device,
                          &queueConfig,
                          WDF_NO_OBJECT_ATTRIBUTES,
                          &WriteQueue
                          );
if(!NT_SUCCESS(status)) {
    return status;
}
status = WdfDeviceConfigureRequestDispatching(
                                              Device,
                                              WriteQueue,
                                              WdfRequestTypeWrite
                                              );
if(!NT_SUCCESS(status)) {
    return status;
}

Exigences

Exigence Valeur
plateforme cible Universel
version minimale de KMDF 1.0
version minimale de UMDF 2.0
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), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf)

Voir aussi

WDF_IO_QUEUE_CONFIG_INIT

WdfIoQueueCreate