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 |
---|---|
|
Un paramètre d’entrée n’est pas valide. |
|
La quantité de mémoire disponible est trop faible. |
|
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) |