Partager via


NDIS_PD_QUEUE_PARAMETERS structure (ndis.h)

Cette structure est utilisée pour conserver les paramètres d’une file d’attente de transmission ou de réception lors de l’appel de l’une des routines de file d’attente.

Syntaxe

typedef struct _NDIS_PD_QUEUE_PARAMETERS {
  NDIS_OBJECT_HEADER     Header;
  ULONG                  Flags;
  NDIS_PD_QUEUE_TYPE     QueueType;
  ULONG                  QueueSize;
  ULONG                  ReceiveDataLength;
  GROUP_AFFINITY         Affinity;
  ULONG                  TrafficClassId;
  ULONG                  MaximumPartialBufferCount;
  NDIS_PD_COUNTER_HANDLE CounterHandle;
} NDIS_PD_QUEUE_PARAMETERS;

Membres

Header

Structure NDIS_OBJECT_HEADER pour la structure NDIS_PD_CONFIG . Définissez les membres de cette structure comme suit :

  • Type = NDIS_OBJECT_TYPE_DEFAULT
  • Révision = NDIS_PD_QUEUE_PARAMETERS_REVISION_1
  • Taille = NDIS_SIZEOF_PD_QUEUE_PARAMETERS_REVISION_1

Flags

Ce membre est réservé et doit être défini sur 0 par le fournisseur.

QueueType

Type de la file d’attente. Pour plus d’informations, consultez NDIS_PD_QUEUE_TYPE.

QueueSize

La quantité maximale de structures PD_BUFFER que cette file d’attente peut contenir et est toujours égale à un nombre de la forme (2^k)-1 (63, 127, 255, 511, 1023, etc.). Cela se prête à une arithmétique d’index circulaire efficace.

ReceiveDataLength

Longueur de données minimale PD_BUFFER .

Affinity

L’affinité processeur est un indicateur pour le fournisseur d’optimisation des performances. La plateforme traite principalement la file d’attente sur les processeurs indiqués par ce masque. Le fournisseur doit définir cette valeur sur le cœur de processeur dérivé de la table d’indirection configurée à partir de OID_GEN_RECEIVE_SCALE_PARAMETERS

TrafficClassId

MaximumPartialBufferCount

Pour les files d’attente de transmission, il s’agit du nombre maximal de structures de PD_BUFFER partielles que le client est autorisé à chaîner ensemble pour former un seul paquet L2. Cette valeur doit être égale à la valeur MaximumTxPartialBufferCount dans la structure NDIS_PD_CAPABILITIES .

Pour les files d’attente de réception, il s’agit du nombre maximal de structures de PD_BUFFER partielles que le fournisseur est autorisé à chaîner ensemble pour former un seul paquet L2 volumineux avec RSC. Cette valeur doit être inférieure ou égale à la valeur MaximumRxPartialBufferCount dans la structure NDIS_PD_CAPABILITIES .

Note Le client ne publie jamais PD_BUFFER structures avec l’indicateur partiel dans la file d’attente de réception. Le client est toujours tenu de publier PD_BUFFER structures avec au moins un espace de taille MTU, en commençant par la position de départ des données. Le fournisseur effectue le chaînage uniquement dans le cas de RSC. Certains fournisseurs peuvent ne pas être en mesure de prendre en charge le chaînage RSC. Ces fournisseurs définissent la valeur 1 sur le membre MaximumRxPartialBufferCount dans la structure NDIS_PD_CAPABILITIES .
 

CounterHandle

Il s’agit d’un handle pour le compteur de file d’attente de transmission pour les files d’attente de transmission et d’un compteur de file d’attente de réception pour les files d’attente de réception. Lors de la création de la file d’attente, un client peut éventuellement fournir un handle de compteur. Dans ce cas et selon le type de file d’attente, le fournisseur doit mettre à jour les valeurs du compteur à mesure que l’activité se produit sur la file d’attente. Le client est responsable de la fermeture du handle de compteur uniquement après la fermeture de la file d’attente.

Pour les files d’attente qui ne sont pas directement créées par le client, telles que les files d’attente de réception RSS obtenues à l’aide de la routine NdisPDOnRssReceiveQueues, le fournisseur doit toujours avoir un handle de compteur associé à la file d’attente. Autrement dit, pour un ensemble donné de files d’attente de réception RSS, le fournisseur doit avoir un compteur de file d’attente de réception dédié pour chaque file d’attente de réception.

Remarques

Cette structure doit être alignée sur une limite de 8 octets.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 10
Serveur minimal pris en charge Windows Server 2016
En-tête ndis.h

Voir aussi

NDIS_PD_QUEUE_TYPE

NdisPDAllocateQueue