estrutura NDK_ADAPTER_INFO (ndkinfo.h)

A estrutura NDK_ADAPTER_INFO especifica informações sobre limites e recursos de um adaptador NDK.

Sintaxe

typedef struct _NDK_ADAPTER_INFO {
  NDK_VERSION         Version;
  UINT32              VendorId;
  UINT32              DeviceId;
  SIZE_T              MaxRegistrationSize;
  SIZE_T              MaxWindowSize;
  ULONG               FRMRPageCount;
  ULONG               MaxInitiatorRequestSge;
  ULONG               MaxReceiveRequestSge;
  ULONG               MaxReadRequestSge;
  ULONG               MaxTransferLength;
  ULONG               MaxInlineDataSize;
  ULONG               MaxInboundReadLimit;
  ULONG               MaxOutboundReadLimit;
  ULONG               MaxReceiveQueueDepth;
  ULONG               MaxInitiatorQueueDepth;
  ULONG               MaxSrqDepth;
  ULONG               MaxCqDepth;
  ULONG               LargeRequestThreshold;
  ULONG               MaxCallerData;
  ULONG               MaxCalleeData;
  ULONG               AdapterFlags;
  NDK_RDMA_TECHNOLOGY RdmaTechnology;
} NDK_ADAPTER_INFO;

Membros

Version

As versões principais e secundárias da interface NDK (NDK_VERSION).

VendorId

OUI (identificador exclusivo organizacional) de um fornecedor.

DeviceId

Um identificador de dispositivo definido pelo fornecedor.

MaxRegistrationSize

O tamanho máximo, em bytes, de um único registro de memória que o adaptador pode abordar.

MaxWindowSize

O tamanho máximo, em bytes, para uma única janela de memória.

FRMRPageCount

O tamanho da FRMR (região de memória de registro rápido) (em páginas PAGE_SIZE ) para o qual o adaptador dá suporte ao maior número de FRMRs. Um provedor deve dar suporte a pelo menos 16 páginas FRMR. Esse valor normalmente é usado por camadas superiores como um tamanho FRMR que otimiza operações simultâneas de E/S baseadas em FRMR. Portanto, anunciar um valor maior que 16 só deverá ser feito se o número total de FRMRs com suporte com esse tamanho não for significativamente reduzido como resultado.

MaxInitiatorRequestSge

O número máximo de SGEs (entradas de coleta de dispersão) que podem ser especificadas em uma única solicitação em uma fila do iniciador.

MaxReceiveRequestSge

O número máximo de SGEs que podem ser especificados em uma única solicitação em uma fila de recebimento.

MaxReadRequestSge

O número máximo de SGEs que podem ser especificados em uma solicitação de leitura.

Nota Esse valor substitui o valor MaxInitiatorRequestSge para solicitações de leitura.
 

MaxTransferLength

O comprimento total máximo que pode ser referenciado por todos os SGEs em uma única solicitação de envio, recebimento, leitura ou gravação.

MaxInlineDataSize

A quantidade máxima de dados embutidos, em bytes, que podem ser enviados em uma única solicitação de envio ou gravação.

MaxInboundReadLimit

O número máximo de operações de leitura de entrada em andamento para cada QP.

MaxOutboundReadLimit

O número máximo de operações de leitura de saída em andamento para cada QP.

MaxReceiveQueueDepth

O número máximo de solicitações pendentes para cada fila de recebimento.

MaxInitiatorQueueDepth

O número máximo de solicitações pendentes para cada fila do iniciador.

MaxSrqDepth

O número máximo de solicitações pendentes para cada fila de recebimento compartilhado (SRQ). Um valor zero significa que não há suporte para SRQ.

MaxCqDepth

O número máximo de entradas de conclusão para cada CQ (fila de conclusão).

LargeRequestThreshold

A dica de tamanho de dados, em bytes, acima da qual as operações de leitura e gravação produzirão melhores resultados do que as operações de envio e recebimento.

MaxCallerData

O tamanho máximo, em bytes, dos dados privados que podem ser enviados com uma solicitação de conexão.

MaxCalleeData

O tamanho máximo, em bytes, dos dados privados que podem ser enviados com uma solicitação de aceitação ou rejeição.

AdapterFlags

Um conjunto de sinalizadores que determinam as propriedades do adaptador. Os sinalizadores definidos no momento incluem:

Valor Significado
NDK_ADAPTER_FLAG_IN_ORDER_DMA_SUPPORTED
0x00000001
Defina se o provedor gravar dados de entrada no buffer do consumidor na ordem. Ou seja, a última posição de byte no buffer do consumidor é garantida para não ser atualizada antes de qualquer posição de byte anterior.
NDK_ADAPTER_FLAG_RDMA_READ_SINK_NOT_REQUIRED
0x00000002

Defina se o provedor não exigir direitos de acesso especiais no buffer do coletor para uma solicitação de leitura RDMA. Quando esse sinalizador é definido, o consumidor não é obrigado a usar os sinalizadores de NDK_MR_FLAG_RDMA_READ_SINK ou NDK_OP_FLAG_RDMA_READ_SINK quando registra buffers de coletor para solicitações de leitura RDMA. O consumidor também pode usar mapeamentos de endereço lógico diretamente (com um token obtido com a função NDK_FN_GET_PRIVILEGED_MEMORY_REGION_TOKEN ) como buffers de coletor de leitura RDMA. Isso é semelhante ao acesso a buffers locais para operações de gravação, envio e recebimento de RDMA.

NDK_ADAPTER_FLAG_CQ_INTERRUPT_MODERATION_SUPPORTED
0x00000004
Defina se o provedor dá suporte à moderação de interrupção controlada programaticamente para cada CQ (fila de conclusão). Quando esse sinalizador é definido, um consumidor de NDK pode usar a função NDK_FN_CONTROL_CQ_INTERRUPT_MODERATION na tabela NDK_CQ_DISPATCH .
NDK_ADAPTER_FLAG_MULTI_ENGINE_SUPPORTED
0x00000008
Defina se o provedor dá suporte ao processamento simultâneo de várias conexões com vários mecanismos de execução. Se esse sinalizador for definido, um consumidor NDK que usa mais de uma conexão simultaneamente no adaptador poderá fornecer melhor desempenho do que uma única conexão.
NDK_ADAPTER_FLAG_RDMA_READ_LOCAL_INVALIDATE_SUPPORTED
0x00000010
Defina se o provedor der suporte à invalidação do token local especificado no primeiro NDK_SGE passado para uma função NdkRead (NDK_FN_READ) ao concluir a solicitação de leitura.

Nota Esse valor tem suporte apenas no NDKPI 1.2 (Windows Server 2012 R2) e posterior.

NDK_ADAPTER_FLAG_CQ_RESIZE_SUPPORTED
0x00000100
Defina se o provedor der suporte ao redimensionamento de objetos CQ. Se esse sinalizador não estiver definido, o consumidor não deverá tentar redimensionar um CQ.
NDK_ADAPTER_FLAG_LOOPBACK_CONNECTIONS_SUPPORTED
0x00010000
Defina se o provedor dá suporte a conexões de loopback. Ou seja, faça o loopback de um endereço de rede local em um determinado RNIC para o mesmo endereço local no mesmo RNIC.

RdmaTechnology

Comentários

A função NDK_FN_QUERY_ADAPTER_INFO recupera o NDK_ADAPTER_INFO, que contém informações sobre vários limites e funcionalidades do adaptador.

Requisitos

   
Cliente mínimo com suporte Nenhum com suporte, com suporte no NDIS 6.30 e posterior.
Servidor mínimo com suporte Windows Server 2012
Cabeçalho ndkinfo.h (inclua Ndkpi.h)

Confira também

NDK_CQ_DISPATCH

NDK_FN_CONTROL_CQ_INTERRUPT_MODERATION

NDK_FN_GET_PRIVILEGED_MEMORY_REGION_TOKEN

NDK_VERSION