NDIS_NIC_SWITCH_CAPABILITIES 结构 (ntddndis.h)
NDIS_NIC_SWITCH_CAPABILITIES结构指定网络适配器上 NIC 交换机的功能。
语法
typedef struct _NDIS_NIC_SWITCH_CAPABILITIES {
NDIS_OBJECT_HEADER Header;
ULONG Flags;
ULONG NdisReserved1;
ULONG NumTotalMacAddresses;
ULONG NumMacAddressesPerPort;
ULONG NumVlansPerPort;
ULONG NdisReserved2;
ULONG NdisReserved3;
ULONG NicSwitchCapabilities;
ULONG MaxNumSwitches;
ULONG MaxNumVPorts;
ULONG NdisReserved4;
ULONG MaxNumVFs;
ULONG MaxNumQueuePairs;
ULONG NdisReserved5;
ULONG NdisReserved6;
ULONG NdisReserved7;
ULONG MaxNumQueuePairsPerNonDefaultVPort;
ULONG NdisReserved8;
ULONG NdisReserved9;
ULONG NdisReserved10;
ULONG NdisReserved11;
ULONG NdisReserved12;
ULONG MaxNumMacAddresses;
ULONG NdisReserved13;
ULONG NdisReserved14;
ULONG NdisReserved15;
ULONG NdisReserved16;
ULONG NdisReserved17;
ULONG MaxNumRssCapableNonDefaultPFVPorts;
ULONG NumberOfIndirectionTableEntriesForDefaultVPort;
ULONG NumberOfIndirectionTableEntriesPerNonDefaultPFVPort;
ULONG MaxNumQueuePairsForDefaultVPort;
} NDIS_NIC_SWITCH_CAPABILITIES, *PNDIS_NIC_SWITCH_CAPABILITIES;
成员
Header
NDIS_NIC_SWITCH_CAPABILITIES结构的类型、修订和大小。 此成员的格式设置为 NDIS_OBJECT_HEADER 结构。
微型端口驱动程序必须将 Header 的 Type 成员设置为NDIS_OBJECT_TYPE_DEFAULT。 若要指定 NDIS_NIC_SWITCH_CAPABILITIES 结构的版本,驱动程序必须将 Header 的 Revision 成员设置为以下值之一:
NDIS_NIC_SWITCH_CAPABILITIES_REVISION_3
为 NDIS 6.60 添加了 RSS 接口成员。
将 Size 成员设置为NDIS_SIZEOF_NIC_SWITCH_CAPABILITIES_REVISION_3。
NDIS_NIC_SWITCH_CAPABILITIES_REVISION_2
为 NDIS 6.30 添加了单根 I/O 虚拟化 (SR-IOV) 接口成员。
将 Size 成员设置为 NDIS_SIZEOF_NIC_SWITCH_CAPABILITIES_REVISION_2。
NDIS_NIC_SWITCH_CAPABILITIES_REVISION_1
NDIS 6.20 的原始版本。
将 Size 成员设置为 NDIS_SIZEOF_NIC_SWITCH_CAPABILITIES_REVISION_1。
Flags
包含标志的按位 OR 的 ULONG 值。 此成员是为 NDIS 保留的。
NdisReserved1
为 NDIS 保留。
NumTotalMacAddresses
一个 ULONG 值,该值包含网络适配器支持的媒体访问控制 (MAC) 地址总数。
NumMacAddressesPerPort
一个 ULONG 值,该值包含每个端口支持的 MAC 地址数。
NumVlansPerPort
一个 ULONG 值,该值包含每个端口支持的 VLAN 数。
NdisReserved2
为 NDIS 保留。
NdisReserved3
为 NDIS 保留。
NicSwitchCapabilities
一个 ULONG 值,该值包含指定 NIC 开关功能的以下标志的按位 OR:
NDIS_NIC_SWITCH_CAPS_RSS_ON_PF_VPORTS_SUPPORTED
指定 NIC 支持 PF VPort 的 VMMQ。
NDIS_NIC_SWITCH_CAPS_RSS_PER_PF_VPORT_INDIRECTION_TABLE_SUPPORTED
如果设置为 1,则指定 NIC 能够维护每个 PF VPort 间接表。
NDIS_NIC_SWITCH_CAPS_RSS_PER_PF_VPORT_HASH_FUNCTION_SUPPORTED
如果设置为 1,则指定 NIC 支持为每个 PF VPort 设置不同的哈希函数。 如果设置了此标志,还必须设置 NDIS_NIC_SWITCH_CAPS_RSS_PER_PF_VPORT_HASH_KEY_SUPPORTED 。
NDIS_NIC_SWITCH_CAPS_RSS_PER_PF_VPORT_HASH_TYPE_SUPPORTED
如果设置为 1,则指定 NIC 支持为每个 PF VPort 设置不同的哈希类型。
NDIS_NIC_SWITCH_CAPS_RSS_PER_PF_VPORT_HASH_KEY_SUPPORTED
如果设置为 1,则指定 NIC 支持为每个 PF VPort 设置不同的哈希密钥。 如果设置了 NDIS_NIC_SWITCH_CAPS_RSS_PER_PF_VPORT_HASH_FUNCTION_SUPPORTED ,则必须设置此标志。
NDIS_NIC_SWITCH_CAPS_RSS_PER_PF_VPORT_INDIRECTION_TABLE_SIZE_RESTRICTED
如果设置为 1,则指定 NIC 对 PF VPort 的间接表大小有限制。 此标志强制 RSS OID 的颁发者使用每 PF VPort 间接表大小等于向上舍入到下一个 2 幂的 VPort 队列数。 这仅适用于 PF VPort,不适用于 VF VPort。 此标志可以与 NDIS_NIC_SWITCH_CAPS_ASYMMETRIC_QUEUE_PAIRS_FOR_NONDEFAULT_VPORT_SUPPORTED 标志结合使用, (不同的 PF VPort 可以具有不同数量的队列) 。 此标志阻止 VMMQ 用户执行精细队列引导。
NDIS_NIC_SWITCH_CAPS_NIC_SWITCH_WITHOUT_IOV_SUPPORTED
此标志由 NDIS 6.60 引入,指定无需使用 SR-IOV 即可创建 NIC 交换机。 此标志允许将 NIC 开关与 *SRIOV 关键字 (keyword) 分开,这意味着即使 *SRIOV = 0,也可以通过 OID_NIC_SWITCH_CREATE_SWITCH 创建 NIC 开关。
有关报告 NDIS 6.60 及更高版本微型端口驱动程序的 NIC 交换机功能的详细信息,请参阅 确定 NIC 交换机功能。
NDIS_NIC_SWITCH_CAPS_VLAN_SUPPORTED
此标志指定 NIC 交换机支持基于虚拟局域网 (VLAN) 标识符 (ID) 的硬件数据包筛选。
NDIS_NIC_SWITCH_CAPS_PER_VPORT_INTERRUPT_MODERATION_SUPPORTED
此标志指定 NIC 交换机可以支持单个 VPort 上的中断审查配置。
NDIS_NIC_SWITCH_CAPS_ASYMMETRIC_QUEUE_PAIRS_FOR_NONDEFAULT_VPORT_SUPPORTED
此标志指定 NIC 交换机可以为每个非默认 VPort 配置不同数量的队列对。 这意味着每个非默认 VPort 都可以配置为具有不同数量的队列对。
如果未设置此标志,则必须以对称方式将所有非默认 VPort 配置为具有相同数量的队列对。
无论是否设置此标志,NIC 交换机都必须支持在默认 VPort 上设置队列对数的功能。 这可能不同于在非默认 VPort 上设置的队列对数。
NDIS_NIC_SWITCH_CAPS_VF_RSS_SUPPORTED
此标志指定附加到 PCI Express (PCIe) Virtual Function (VF) 的非默认 VPort 的队列对可用于接收方缩放 (RSS) 。 VF 微型端口驱动程序在 Hyper-V 子分区的来宾操作系统中运行。
如果设置了此标志,微型端口驱动程序支持 VF 上的 RSS,并且可以使用 RSS 的非默认 VPort 中的一个或多个队列对。
NDIS_NIC_SWITCH_CAPS_SINGLE_VPORT_POOL
此标志指定可以从网络适配器上的 VPort 池以非保留方式创建非默认 VPort。 这允许根据需要创建可用的非默认 VPort 并将其分配给 PF 和分配的 VF。 如果网络适配器支持虚拟机队列 (VMQ) 接口,则分配给 PF 的非默认 VPort 也可用于 VM 接收队列。
有关 VMQ 的详细信息,请参阅 虚拟机队列 (VMQ) 。
有关 VPort 的详细信息,请参阅 管理虚拟端口。
MaxNumSwitches
一个 ULONG 值,该值指定可在网络适配器的 PCI Express (PCIe) 物理功能 (PF) 上创建的最大交换机数。
MaxNumVPorts
一个 ULONG 值,该值指定可在网络适配器上创建的最大 VPort 数。 这包括始终附加到 PF 的默认 VPort。
NdisReserved4
为 NDIS 保留。
MaxNumVFs
一个 ULONG 值,该值指定可在 NIC 交换机上创建的最大 VF 数。
MaxNumQueuePairs
一个 ULONG 值,该值指定可分配给所有 VPort 的最大队列对数。 这包括附加到 PF 的默认 VPort。
NdisReserved5
为 NDIS 保留。
NdisReserved6
为 NDIS 保留。
NdisReserved7
为 NDIS 保留。
MaxNumQueuePairsPerNonDefaultVPort
一个 ULONG 值,该值指定可分配给非默认 VPort 的最大队列对数。
此值以 2 的幂指定,用于非对称配置和将队列对分配到 VPorts。 有关详细信息,请参阅 队列对的对称和非对称分配。
NdisReserved8
为 NDIS 保留。
NdisReserved9
为 NDIS 保留。
NdisReserved10
为 NDIS 保留。
NdisReserved11
为 NDIS 保留。
NdisReserved12
为 NDIS 保留。
MaxNumMacAddresses
一个 ULONG 值,该值指定 NIC 交换机上可用的单播 MAC 地址筛选器的最大数目。
NdisReserved13
为 NDIS 保留。
NdisReserved14
为 NDIS 保留。
NdisReserved15
为 NDIS 保留。
NdisReserved16
为 NDIS 保留。
NdisReserved17
为 NDIS 保留。
MaxNumRssCapableNonDefaultPFVPorts
一个 ULONG 值,该值指定支持 RSS 的非默认 PFVPort 的最大数目。
NumberOfIndirectionTableEntriesForDefaultVPort
一个 ULONG 值,该值指定默认 VPort 的间接表条目数。
NumberOfIndirectionTableEntriesPerNonDefaultPFVPort
一个 ULONG 值,该值指定每个非默认 PFVPort 的间接表条目数。
MaxNumQueuePairsForDefaultVPort
一个 ULONG 值,该值指定可分配给默认 VPort 的最大队列对数。
此值以 2 的幂指定,用于非对称配置和将队列对分配到 VPorts。 有关详细信息,请参阅 队列对的对称和非对称分配。
注解
NDIS_NIC_SWITCH_CAPABILITIES 结构用于以下结构的成员:
- 的 HardwareNicSwitchCapabilities 和 CurrentNicSwitchCapabilities 成员 NDIS_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES 结构。
- 的 NicSwitchCapabilities 成员 NDIS_FILTER_ATTACH_PARAMETERS 和 NDIS_BIND_PARAMETERS 结构。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 在 NDIS 6.20 及更高版本中受支持。 |
标头 | ntddndis.h (包括 Ndis.h) |
另请参阅
NDIS_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES