Condividi tramite


struttura NDIS_PD_QUEUE_PARAMETERS (ndis.h)

Questa struttura viene utilizzata per contenere i parametri per una coda di trasmissione o ricezione quando si chiama una delle routine della coda.

Sintassi

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;

Members

Header

Struttura NDIS_OBJECT_HEADER per la struttura NDIS_PD_CONFIG . Impostare i membri di questa struttura come segue:

  • Digitare = NDIS_OBJECT_TYPE_DEFAULT
  • Revisione = NDIS_PD_QUEUE_PARAMETERS_REVISION_1
  • Dimensione = NDIS_SIZEOF_PD_QUEUE_PARAMETERS_REVISION_1

Flags

Questo membro è riservato e deve essere impostato su 0 dal provider.

QueueType

Tipo della coda. Per altre informazioni, vedere NDIS_PD_QUEUE_TYPE.

QueueSize

La quantità massima di strutture PD_BUFFER che questa coda può contenere ed è sempre uguale a un numero di modulo (2^k)-1 (63, 127, 255, 511, 1023 e così via). Questo si presta a un'efficiente aritmetica dell'indice circolare.

ReceiveDataLength

Lunghezza minima dei dati PD_BUFFER .

Affinity

L'affinità del processore è un suggerimento per il provider per l'ottimizzazione delle prestazioni. La piattaforma eseguirà principalmente l'elaborazione della coda sui processori indicati da questa maschera. Il provider deve impostare questo valore sul core del processore derivato dalla tabella di riferimento indiretto configurato da OID_GEN_RECEIVE_SCALE_PARAMETERS

TrafficClassId

MaximumPartialBufferCount

Per le code di trasmissione, si tratta del numero massimo di strutture di PD_BUFFER parziali che il client può concatenare per formare un singolo pacchetto L2. Questo valore deve essere uguale al valore MaximumTxPartialBufferCount nella struttura NDIS_PD_CAPABILITIES .

Per le code di ricezione, si tratta del numero massimo di strutture parziali PD_BUFFER che il provider può concatenare per formare un singolo pacchetto L2 di grandi dimensioni con RSC. Deve essere minore o uguale al valore MaximumRxPartialBufferCount nella struttura NDIS_PD_CAPABILITIES .

Nota Il client non invia mai strutture PD_BUFFER con il flag parziale alla coda di ricezione. Il client deve sempre pubblicare strutture PD_BUFFER con almeno spazio di dimensioni MTU, a partire dalla posizione iniziale dei dati. Il provider esegue il concatenamento solo nel caso di RSC. Alcuni provider potrebbero non essere in grado di supportare il concatenamento RSC, questi provider impostano il valore 1 sul membro MaximumRxPartialBufferCount nella struttura NDIS_PD_CAPABILITIES .
 

CounterHandle

Si tratta di un handle per il contatore della coda di trasmissione per le code di trasmissione e un contatore della coda di ricezione per le code di ricezione. Durante la creazione della coda, un client può facoltativamente fornire un handle contatore. In questo caso e a seconda del tipo di coda, il provider deve aggiornare i valori del contatore man mano che si verifica l'attività nella coda. Il client è responsabile della chiusura dell'handle del contatore solo dopo la chiusura della coda.

Per le code che non vengono create direttamente dal client, ad esempio le code di ricezione RSS ottenute usando la routine NdisPDOnRssReceiveQueues, il provider deve avere sempre un handle di contatore associato alla coda. Ovvero, per un determinato set di code di ricezione RSS, il provider deve avere un contatore della coda di ricezione dedicato per ogni coda di ricezione.

Commenti

Questa struttura deve essere allineata su un limite di 8 byte.

Requisiti

Requisito Valore
Client minimo supportato Windows 10
Server minimo supportato Windows Server 2016
Intestazione ndis.h

Vedi anche

NDIS_PD_QUEUE_TYPE

NdisPDAllocateQueue