estrutura NDIS_PD_QUEUE_PARAMETERS (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
  • Tamanho = NDIS_SIZEOF_PD_QUEUE_PARAMETERS_REVISION_1

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 PD_BUFFER estruturas 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 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 para formar um único pacote L2 grande com RSC. Isso deve ser menor ou igual ao valor MaximumRxPartialBufferCount na estrutura NDIS_PD_CAPABILITIES .

Nota O cliente nunca posta PD_BUFFER estruturas com o sinalizador parcial na fila de recebimento. O cliente sempre é necessário para postar PD_BUFFER estruturas com pelo menos espaço em tamanho MTU, começando pela posição de início dos dados. O provedor executa o encadeamento somente no caso de 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 NdisPDOnRssReceiveQueues, o provedor deve sempre ter um identificador de contador associado à fila. Ou seja, para um determinado conjunto de filas de recebimento RSS, o provedor deve ter um contador de fila de recebimento dedicado para cada fila de recebimento.

Comentários

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

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 10
Servidor mínimo com suporte Windows Server 2016
Cabeçalho ndis.h

Confira também

NDIS_PD_QUEUE_TYPE

NdisPDAllocateQueue