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)

Voir aussi

WDF_IO_QUEUE_CONFIG_INIT

WDF_IO_QUEUE_CONFIG_INIT_DEFAULT_QUEUE

WDF_IO_QUEUE_DISPATCH_TYPE

WdfIoQueueCreate

WdfIoQueueReadyNotify