Partilhar via


NDIS_PD_QUEUE_PARAMETERS estrutura (ndis.h)

Essa estrutura é usada para manter parâmetros para uma fila de transmissão ou recebimento ao chamar qualquer uma das rotinas de fila.

Sintaxe

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;

Membros

Header

A estrutura NDIS_OBJECT_HEADER para a estrutura NDIS_PD_CONFIG. Defina os membros dessa estrutura da seguinte maneira:

  • tipo = NDIS_OBJECT_TYPE_DEFAULT
  • revisão = NDIS_PD_QUEUE_PARAMETERS_REVISION_1
  • = NDIS_SIZEOF_PD_QUEUE_PARAMETERS_REVISION_1 tamanho do

Flags

Esse membro é reservado e deve ser definido como 0 pelo provedor.

QueueType

O tipo da fila. Para obter mais informações, consulte NDIS_PD_QUEUE_TYPE.

QueueSize

A quantidade máxima de estruturas PD_BUFFER que essa fila pode conter e é sempre igual a um número do formulário (2^k)-1 (63, 127, 255, 511, 1023 etc.). Isso se presta a uma aritmética de índice circular eficiente.

ReceiveDataLength

O comprimento mínimo de dados PD_BUFFER.

Affinity

A afinidade do processador é uma dica para o provedor para otimização de desempenho. A plataforma processará principalmente a fila em processadores indicados por essa máscara. O provedor deve definir esse valor para o núcleo do processador derivado da tabela de indireção configurada de OID_GEN_RECEIVE_SCALE_PARAMETERS

TrafficClassId

MaximumPartialBufferCount

Para filas de transmissão, esse é o número máximo de estruturas parciais PD_BUFFER que o cliente tem permissão para encadear juntos para formar um único pacote L2. Esse valor deve ser igual ao valor MaximumTxPartialBufferCount na estrutura NDIS_PD_CAPABILITIES.

Para filas de recebimento, esse é o número máximo de estruturas parciais PD_BUFFER que o provedor tem permissão para encadear juntos para formar um único pacote L2 grande com RSC. Isso deve ser menor ou igual ao valor MaximumRxPartialBufferCount na estrutura NDIS_PD_CAPABILITIES.

Observação O cliente nunca posta estruturas PD_BUFFER com o sinalizador parcial na fila de recebimento. O cliente sempre é necessário para postar estruturas de PD_BUFFER com pelo menos espaço em tamanho MTU, começando pela posição inicial dos dados. O provedor executa o encadeamento somente no caso do RSC. Alguns provedores podem não ser capazes de dar suporte ao encadeamento RSC, esses provedores definem um valor de 1 para o membro MaximumRxPartialBufferCount na estrutura NDIS_PD_CAPABILITIES.
 

CounterHandle

Esse é um identificador para o contador de fila de transmissão para filas de transmissão e um contador de fila de recebimento para filas de recebimento. Durante a criação da fila, um cliente pode, opcionalmente, fornecer um identificador de contador. Nesse caso e dependendo do tipo de fila, o provedor deve atualizar os valores do contador conforme a atividade ocorre na fila. O cliente é responsável por fechar o identificador do contador somente depois que a fila é fechada.

Para filas que não são criadas diretamente pelo cliente, como filas de recebimento RSS obtidas usando a rotina de NdisPDOnRssReceiveQueues, o provedor sempre deve ter um identificador de contador associado à fila. Ou seja, para um determinado conjunto de filas de recebimento do RSS, o provedor deve ter um contador de fila de recebimento dedicado para cada fila de recebimento.

Observações

Essa estrutura deve ser alinhada em um limite de 8 bytes.

Requisitos

Requisito Valor
de cliente com suporte mínimo Windows 10
servidor com suporte mínimo Windows Server 2016
cabeçalho ndis.h

Consulte também

NDIS_PD_QUEUE_TYPE

NdisPDAllocateQueue