NDK_ADAPTER_INFO 结构 (ndkinfo.h)

NDK_ADAPTER_INFO结构指定有关 NDK 适配器的限制和功能的信息。

语法

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;

成员

Version

NDK 接口的主要版本和次要版本 (NDK_VERSION) 。

VendorId

供应商的组织唯一标识符 (OUI) 。

DeviceId

供应商定义的设备标识符。

MaxRegistrationSize

适配器可以寻址的单个内存注册的最大大小(以字节为单位)。

MaxWindowSize

单个内存窗口的最大大小(以字节为单位)。

FRMRPageCount

快速注册内存区域 (FRMR) 大小 (PAGE_SIZE页) 适配器支持最大数量的 FRMR。 提供程序必须至少支持 16 个 FRMR 页面。 此值通常由上层用作 FRMR 大小,用于优化基于 FRMR 的并发 I/O 操作。 因此,仅当该大小支持的 FRR 总数未得到有意义的减少时,才应播发大于 16 的值。

MaxInitiatorRequestSge

可在单个请求中通过发起程序队列指定的 SGE (SGE) 的最大散点-收集条目数。

MaxReceiveRequestSge

可通过接收队列在单个请求中指定的最大 SGE 数。

MaxReadRequestSge

可在读取请求中指定的最大 SGE 数。

注意 此值替代读取请求的 MaxInitiatorRequestSge 值。
 

MaxTransferLength

单个发送、接收、读取或写入请求中的所有 SG 都可以引用的最大总长度。

MaxInlineDataSize

可在单个发送或写入请求中发送的最大内联数据量(以字节为单位)。

MaxInboundReadLimit

每个 QP 正在进行的传入读取操作的最大数目。

MaxOutboundReadLimit

每个 QP 正在进行的传出读取操作的最大数目。

MaxReceiveQueueDepth

每个接收队列的最大未完成请求数。

MaxInitiatorQueueDepth

每个发起方队列的最大未完成请求数。

MaxSrqDepth

每个共享接收队列的最大未完成请求数 (SRQ) 。 值为零表示没有 SRQ 支持。

MaxCqDepth

每个完成队列的最大完成项数 (CQ) 。

LargeRequestThreshold

数据大小提示(以字节为单位),高于该提示,读取和写入操作将产生比发送和接收操作更好的结果。

MaxCallerData

可以使用连接请求发送的专用数据的最大大小(以字节为单位)。

MaxCalleeData

可以使用接受或拒绝请求发送的专用数据的最大大小(以字节为单位)。

AdapterFlags

确定适配器属性的一组标志。 当前定义的标志包括:

含义
NDK_ADAPTER_FLAG_IN_ORDER_DMA_SUPPORTED
0x00000001
设置提供程序是否按顺序将传入数据写入使用者的缓冲区。 也就是说,保证不会在任何先前的字节位置之前更新使用者缓冲区中的最后一个字节位置。
NDK_ADAPTER_FLAG_RDMA_READ_SINK_NOT_REQUIRED
0x00000002

如果提供程序不需要对 RDMA 读取请求的接收器缓冲区具有特殊访问权限,则设置 。 设置此标志后,使用者无需在为 RDMA 读取请求注册接收器缓冲区时使用NDK_MR_FLAG_RDMA_READ_SINK或NDK_OP_FLAG_RDMA_READ_SINK标志。 使用者还可以将逻辑地址映射直接 (与通过 NDK_FN_GET_PRIVILEGED_MEMORY_REGION_TOKEN 函数获取的令牌一起使用,) 作为 RDMA 读取接收器缓冲区。 这类似于对 RDMA 写入、发送和接收操作的本地缓冲区的访问。

NDK_ADAPTER_FLAG_CQ_INTERRUPT_MODERATION_SUPPORTED
0x00000004
设置提供程序是否对每个完成队列 (CQ) 支持以编程方式控制的中断审查。 设置此标志后,NDK 使用者可以使用 NDK_CQ_DISPATCH 表中 的 NDK_FN_CONTROL_CQ_INTERRUPT_MODERATION 函数。
NDK_ADAPTER_FLAG_MULTI_ENGINE_SUPPORTED
0x00000008
设置提供程序是否支持使用多个执行引擎对多个连接进行并发处理。 如果设置了此标志,则同时在适配器上使用多个连接的 NDK 使用者可能比单个连接提供更好的性能。
NDK_ADAPTER_FLAG_RDMA_READ_LOCAL_INVALIDATE_SUPPORTED
0x00000010
如果提供程序支持在完成读取请求时传递给NdkRead (NDK_FN_READ) 函数的第一个NDK_SGE中指定的本地令牌失效,则设置 。

注意 此值仅在 NDKPI 1.2 (Windows Server 2012 R2) 及更高版本中受支持。

NDK_ADAPTER_FLAG_CQ_RESIZE_SUPPORTED
0x00000100
设置提供程序是否支持调整 CQ 对象的大小。 如果未设置此标志,则使用者不得尝试重设 CQ 大小。
NDK_ADAPTER_FLAG_LOOPBACK_CONNECTIONS_SUPPORTED
0x00010000
设置提供程序是否支持环回连接。 也就是说,从给定 RNIC 上的本地网络地址环回同一 RNIC 上的同一本地地址。

RdmaTechnology

注解

NDK_FN_QUERY_ADAPTER_INFO 函数检索NDK_ADAPTER_INFO,其中包含有关适配器的各种限制和功能的信息。

要求

   
最低受支持的客户端 不支持,NDIS 6.30 及更高版本支持。
最低受支持的服务器 Windows Server 2012
标头 ndkinfo.h (包括 Ndkpi.h)

请参阅

NDK_CQ_DISPATCH

NDK_FN_CONTROL_CQ_INTERRUPT_MODERATION

NDK_FN_GET_PRIVILEGED_MEMORY_REGION_TOKEN

NDK_VERSION