structure WDF_IO_QUEUE_CONFIG (wdfio.h)
[S’applique à KMDF et UMDF]
La structure WDF_IO_QUEUE_CONFIG contient des informations de configuration pour un objet de file d’attente d’infrastructure.
Syntaxe
typedef struct _WDF_IO_QUEUE_CONFIG {
ULONG Size;
WDF_IO_QUEUE_DISPATCH_TYPE DispatchType;
WDF_TRI_STATE PowerManaged;
BOOLEAN AllowZeroLengthRequests;
BOOLEAN DefaultQueue;
PFN_WDF_IO_QUEUE_IO_DEFAULT EvtIoDefault;
PFN_WDF_IO_QUEUE_IO_READ EvtIoRead;
PFN_WDF_IO_QUEUE_IO_WRITE EvtIoWrite;
PFN_WDF_IO_QUEUE_IO_DEVICE_CONTROL EvtIoDeviceControl;
PFN_WDF_IO_QUEUE_IO_INTERNAL_DEVICE_CONTROL EvtIoInternalDeviceControl;
PFN_WDF_IO_QUEUE_IO_STOP EvtIoStop;
PFN_WDF_IO_QUEUE_IO_RESUME EvtIoResume;
PFN_WDF_IO_QUEUE_IO_CANCELED_ON_QUEUE EvtIoCanceledOnQueue;
union {
struct {
ULONG NumberOfPresentedRequests;
} Parallel;
} Settings;
WDFDRIVER Driver;
} WDF_IO_QUEUE_CONFIG, *PWDF_IO_QUEUE_CONFIG;
Membres
Size
Longueur, en octets, de cette structure.
DispatchType
Un énumérateur WDF_IO_QUEUE_DISPATCH_TYPE qui identifie le type de répartition des demandes pour la file d’attente.
PowerManaged
Valeur de type WDF_TRI_STATE qui, si elle est définie sur WdfTrue, indique que l’infrastructure gère la gestion de l’alimentation de la file d’attente.
S’il est défini sur WdfFalse, le pilote doit gérer la gestion de l’alimentation de la file d’attente.
Si la valeur est WdfUseDefault, l’infrastructure gère la gestion de l’alimentation de la file d’attente, sauf si le pilote appelle WdfFdoInitSetFilter.
Les pilotes au-dessus du propriétaire de la stratégie d’alimentation dans la pile des pilotes ne doivent pas définir le membre PowerManaged sur WdfTrue.
Pour plus d’informations sur les files d’attente d’E/S gérées par l’alimentation, consultez Gestion de l’alimentation pour les files d’attente d’E/S.
AllowZeroLengthRequests
Valeur booléenne qui, si TRUE, indique que le pilote s’attend à recevoir des demandes de lecture ou d’écriture dont la longueur de mémoire tampon est égale à zéro, de sorte que l’infrastructure remet ces requêtes au pilote. Si la valeur est FALSE, l’infrastructure ne remet pas ces requêtes au pilote ; au lieu de cela, il les complète avec une status d’achèvement de STATUS_SUCCESS.
DefaultQueue
Valeur booléenne qui, si true, indique que la file d’attente sera la file d’attente d’E/S par défaut de l’appareil. Si la valeur est FALSE, la file d’attente ne sera pas la file d’attente par défaut de l’appareil.
EvtIoDefault
Pointeur vers la fonction de rappel EvtIoDefault spécifique à la file d’attente du pilote, ou NULL.
EvtIoRead
Pointeur vers la fonction de rappel EvtIoRead spécifique à la file d’attente du pilote, ou NULL.
EvtIoWrite
Pointeur vers la fonction de rappel EvtIoWrite spécifique à la file d’attente du pilote, ou NULL.
EvtIoDeviceControl
Pointeur vers la fonction de rappel EvtIoDeviceControl spécifique à la file d’attente du pilote, ou NULL.
EvtIoInternalDeviceControl
Pointeur vers la fonction de rappel EvtIoInternalDeviceControl spécifique à la file d’attente du pilote, ou NULL.
EvtIoStop
Pointeur vers la fonction de rappel EvtIoStop spécifique à la file d’attente du pilote, ou NULL.
EvtIoResume
Pointeur vers la fonction de rappel EvtIoResume spécifique à la file d’attente du pilote, ou NULL.
EvtIoCanceledOnQueue
Pointeur vers la fonction de rappel EvtIoCanceledOnQueue spécifique à la file d’attente du pilote, ou NULL.
Settings
Settings.Parallel
Settings.Parallel.NumberOfPresentedRequests
Pour la méthode de répartition parallèle, le nombre maximal de demandes d’E/S que l’infrastructure remet de manière asynchrone aux gestionnaires de requêtes de la file d’E/S. Pour plus d'informations, consultez la section Notes qui suit. Pour les méthodes de répartition séquentielle et manuelle, ce membre doit être égal à zéro. Ce membre est disponible dans la version 1.9 et les versions ultérieures de KMDF.
Driver
À usage interne uniquement. valeur de l’en-tête définie sur Null. Ce membre est disponible dans la version 1.11 et les versions ultérieures de KMDF.
Remarques
Le pilote doit initialiser la structure WDF_IO_QUEUE_CONFIG en appelant WDF_IO_QUEUE_CONFIG_INIT ou WDF_IO_QUEUE_CONFIG_INIT_DEFAULT_QUEUE.
La structure WDF_IO_QUEUE_CONFIG est utilisée comme paramètre d’entrée pour WdfIoQueueCreate.
À compter de la version 1.9 de KMDF, les pilotes peuvent utiliser le membre NumberOfPresentedRequests pour spécifier le nombre maximal de demandes d’E/S que l’infrastructure remet de manière asynchrone aux gestionnaires de requêtes d’une file d’E/S parallèle. Une fois que l’infrastructure a remis le nombre spécifié de demandes d’E/S au pilote, elle ne remet plus de requêtes à partir de la file d’attente tant que le pilote n’a pas terminé, annulé ou requeiné au moins l’une des requêtes.
Pour les files d’attente parallèles, WDF_IO_QUEUE_CONFIG_INIT et WDF_IO_QUEUE_CONFIG_INIT_DEFAULT_QUEUE définissez le membre NumberOfPresentedRequests sur sa valeur par défaut (-1), ce qui indique que l’infrastructure peut fournir un nombre illimité de demandes d’E/S au pilote.
Configuration requise
Condition requise | Valeur |
---|---|
Version KMDF minimale | 1.0 |
Version UMDF minimale | 2.0 |
En-tête | wdfio.h (inclure Wdf.h) |