WdfDeviceConfigureRequestDispatching, fonction (wdfdevice.h)
[S’applique à KMDF et UMDF]
La méthode WdfDeviceConfigureRequestDispatching entraîne la mise en file d’attente d’un type spécifié de demandes 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 retournée
Si l’opération réussit, la méthode retourne STATUS_SUCCESS. Les valeurs de retour supplémentaires sont les suivantes :
Code de retour | 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.
Un bogue case activée 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 demandes (par exemple, des demandes de lecture et d’écriture), votre pilote peut appeler WdfDeviceConfigureRequestDispatching plusieurs fois pour une seule file d’attente d’E/S.
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 pour 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;
}
Configuration requise
Condition requise | Valeur |
---|---|
Plateforme cible | Universal |
Version KMDF minimale | 1.0 |
Version UMDF minimale | 2.0 |
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), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf) |
Voir aussi
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour