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 数。
MaxTransferLength
单个发送、接收、读取或写入请求中的所有 SG 都可以引用的最大总长度。
MaxInlineDataSize
可在单个发送或写入请求中发送的最大内联数据量(以字节为单位)。
MaxInboundReadLimit
每个 QP 正在进行的传入读取操作的最大数目。
MaxOutboundReadLimit
每个 QP 正在进行的传出读取操作的最大数目。
MaxReceiveQueueDepth
每个接收队列的最大未完成请求数。
MaxInitiatorQueueDepth
每个发起方队列的最大未完成请求数。
MaxSrqDepth
每个共享接收队列的最大未完成请求数 (SRQ) 。 值为零表示没有 SRQ 支持。
MaxCqDepth
每个完成队列的最大完成项数 (CQ) 。
LargeRequestThreshold
数据大小提示(以字节为单位),高于该提示,读取和写入操作将产生比发送和接收操作更好的结果。
MaxCallerData
可以使用连接请求发送的专用数据的最大大小(以字节为单位)。
MaxCalleeData
可以使用接受或拒绝请求发送的专用数据的最大大小(以字节为单位)。
AdapterFlags
确定适配器属性的一组标志。 当前定义的标志包括:
值 | 含义 |
---|---|
|
设置提供程序是否按顺序将传入数据写入使用者的缓冲区。 也就是说,保证不会在任何先前的字节位置之前更新使用者缓冲区中的最后一个字节位置。 |
|
如果提供程序不需要对 RDMA 读取请求的接收器缓冲区具有特殊访问权限,则设置 。 设置此标志后,使用者无需在为 RDMA 读取请求注册接收器缓冲区时使用NDK_MR_FLAG_RDMA_READ_SINK或NDK_OP_FLAG_RDMA_READ_SINK标志。 使用者还可以将逻辑地址映射直接 (与通过 NDK_FN_GET_PRIVILEGED_MEMORY_REGION_TOKEN 函数获取的令牌一起使用,) 作为 RDMA 读取接收器缓冲区。 这类似于对 RDMA 写入、发送和接收操作的本地缓冲区的访问。 |
|
设置提供程序是否对每个完成队列 (CQ) 支持以编程方式控制的中断审查。 设置此标志后,NDK 使用者可以使用 NDK_CQ_DISPATCH 表中 的 NDK_FN_CONTROL_CQ_INTERRUPT_MODERATION 函数。 |
|
设置提供程序是否支持使用多个执行引擎对多个连接进行并发处理。 如果设置了此标志,则同时在适配器上使用多个连接的 NDK 使用者可能比单个连接提供更好的性能。 |
|
如果提供程序支持在完成读取请求时传递给NdkRead (NDK_FN_READ) 函数的第一个NDK_SGE中指定的本地令牌失效,则设置 。
注意 此值仅在 NDKPI 1.2 (Windows Server 2012 R2) 及更高版本中受支持。 |
|
设置提供程序是否支持调整 CQ 对象的大小。 如果未设置此标志,则使用者不得尝试重设 CQ 大小。 |
|
设置提供程序是否支持环回连接。 也就是说,从给定 RNIC 上的本地网络地址环回同一 RNIC 上的同一本地地址。 |
RdmaTechnology
注解
NDK_FN_QUERY_ADAPTER_INFO 函数检索NDK_ADAPTER_INFO,其中包含有关适配器的各种限制和功能的信息。
要求
最低受支持的客户端 | 不支持,NDIS 6.30 及更高版本支持。 |
最低受支持的服务器 | Windows Server 2012 |
标头 | ndkinfo.h (包括 Ndkpi.h) |
请参阅
NDK_FN_CONTROL_CQ_INTERRUPT_MODERATION