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.
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 |
---|---|
|
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. |
|
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. |
|
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 . |
|
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. |
|
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. |
|
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. |
|
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_FN_CONTROL_CQ_INTERRUPT_MODERATION