NDIS_SWITCH_NIC_PARAMETERS 结构 (ntddndis.h)
NDIS_SWITCH_NIC_PARAMETERS 结构指定连接到 Hyper-V 可扩展交换机端口的网络适配器 (NIC) 的配置参数。
语法
typedef struct _NDIS_SWITCH_NIC_PARAMETERS {
NDIS_OBJECT_HEADER Header;
ULONG Flags;
NDIS_SWITCH_NIC_NAME NicName;
NDIS_SWITCH_NIC_FRIENDLYNAME NicFriendlyName;
NDIS_SWITCH_PORT_ID PortId;
NDIS_SWITCH_NIC_INDEX NicIndex;
NDIS_SWITCH_NIC_TYPE NicType;
NDIS_SWITCH_NIC_STATE NicState;
NDIS_VM_NAME VmName;
NDIS_VM_FRIENDLYNAME VmFriendlyName;
GUID NetCfgInstanceId;
ULONG MTU;
USHORT NumaNodeId;
UCHAR PermanentMacAddress[NDIS_MAX_PHYS_ADDRESS_LENGTH];
UCHAR VMMacAddress[NDIS_MAX_PHYS_ADDRESS_LENGTH];
UCHAR CurrentMacAddress[NDIS_MAX_PHYS_ADDRESS_LENGTH];
BOOLEAN VFAssigned;
ULONG64 NdisReserved[2];
} NDIS_SWITCH_NIC_PARAMETERS, *PNDIS_SWITCH_NIC_PARAMETERS;
成员
Header
NDIS_SWITCH_NIC_PARAMETERS 结构的类型、修订和大小。 此成员的格式设置为 NDIS_OBJECT_HEADER 结构。
标头的 Type 成员必须设置为 NDIS_OBJECT_TYPE_DEFAULT。 若要指定NDIS_SWITCH_NIC_PARAMETERS结构的版本,必须将 Header 的 Revision 成员设置为以下值:
NDIS_SWITCH_NIC_PARAMETERS_REVISION_1
NDIS 6.30 及更高版本的原始版本。
将 Size 成员设置为 NDIS_SIZEOF_NDIS_SWITCH_NIC_PARAMETERS_REVISION_1。
Flags
包含标志的按位 OR 的 ULONG 值。 定义了以下标志值。
值 | 含义 |
---|---|
|
此标志是在 VM NIC 对象的生存期内首次颁发 OID_SWITCH_NIC_CREATE OID 时设置的。 如果设置了此标志:
|
NicName
一个 NDIS_SWITCH_NIC_NAME 值,该值指定连接到可扩展交换机端口的网络适配器的唯一内部名称。
有关详细信息,请参见“备注”部分。
NicFriendlyName
一个 NDIS_SWITCH_NIC_FRIENDLYNAME 值,该值指定网络适配器的用户友好说明。
PortId
一个NDIS_SWITCH_PORT_ID值,该值包含网络适配器连接到的可扩展交换机端口的唯一标识符。
NicIndex
一个 NDIS_SWITCH_NIC_INDEX 值,该值指定连接到 PortId 成员指定的可扩展交换机端口的网络适配器的索引。
有关NDIS_SWITCH_NIC_INDEX值的详细信息,请参阅 网络适配器索引值。
NicType
一个 NDIS_SWITCH_NIC_TYPE 值,该值指定连接到可扩展交换机端口的网络适配器的类型。
NicState
一个NDIS_SWITCH_NIC_STATE值,该值指定网络适配器的当前状态。
VmName
一个 NDIS_VM_NAME 值,该值指定运行公开网络适配器的来宾操作系统所在的 Hyper-V 子分区的唯一内部名称。
Hyper-V 子分区也称为虚拟机 (VM) 。
VmFriendlyName
NetCfgInstanceId
一个 GUID 值,该值指定基础网络适配器的 NetCfgInstanceId 注册表值。
MTU
一个 ULONG 值,该值指定网络适配器的最大传输单位 (MTU) 大小(以字节为单位)。
NumaNodeId
一个 USHORT 值,该值指定 CPU 的 NUMA) 节点的首选非统一内存访问 (标识符。 在支持 NUMA 体系结构的计算机上,首选 NUMA 节点是与网络适配器的距离最小的 CPU。
PermanentMacAddress[NDIS_MAX_PHYS_ADDRESS_LENGTH]
一个 UCHAR 数组,指定在网络适配器的主机分区上配置的媒体访问控制 (MAC) 地址。 这可以不同于网络适配器当前使用的 MAC 地址。
VMMacAddress[NDIS_MAX_PHYS_ADDRESS_LENGTH]
一个 UCHAR 数组,指定在 VM 本身的网络适配器上配置的 MAC 地址。 对于非 VM NIC, 字段都是零。 如果来自 NDIS_SWITCH_PORT_PROPERTY_SECURITY) 的 AllowMacSpoofing (为 TRUE,则此地址也将应用于 CurrentMacAddress。
CurrentMacAddress[NDIS_MAX_PHYS_ADDRESS_LENGTH]
一个 UCHAR 数组,指定网络适配器交换机中当前使用的 MAC 地址。 如果 AllowMacSpoofing 和 AllowTeaming 均为 FALSE,则此值将等于 PermanentMacAddress。 如果 AllowMacSpoofing 为 TRUE,则此值将等于 VMMacAddress。 如果 AllowTeaming 为 TRUE 且在 VM 中发生了组合故障转移, 则 CurrentMacAddress 将等于故障转移到网络适配器的 MAC 地址;如果未发生故障转移,则 CurrentMacAddress 将等于已故障转移到网络适配器的 MAC 地址。
VFAssigned
一个 BOOLEAN 值,如果设置为 TRUE,则指定将网络适配器附加到 PCI Express (PCIe) 虚拟函数 (VF) 。 VF 由支持单根 I/O 虚拟化 (SR-IOV) 接口的基础物理网络适配器公开。
有关详细信息,请参见“备注”部分。
NdisReserved[2]
注解
OID_SWITCH_NIC_ARRAY的 OID 查询请求返回包含零个或多个元素的NDIS_SWITCH_NIC_ARRAY结构。 每个元素的格式设置为 NDIS_SWITCH_NIC_PARAMETERS 结构。
NDIS_SWITCH_NIC_PARAMETERS 结构还用于以下 OID 请求:
NicType 和 NicName 成员指南
根据值 NicType 成员, NicName 成员的格式如下所示:-
如果 NicType 成员设置为 NdisSwitchNicTypeExternal,则 NicName 成员的值是绑定到外部网络适配器的物理网络适配器 (InstanceId) 的唯一实例标识符。 这种类型的网络适配器在 Hyper-V 父分区中运行的管理操作系统中公开。
外部网络适配器提供与主机上可用的物理网络接口的连接。 可以通过 Hyper-V 父分区和所有子分区访问外部网络适配器。
注意InstanceId 值由在管理操作系统中运行的即插即用管理器生成。 -
如果 NicType 成员设置为 NdisSwitchNicTypeInternal,则 NicName 成员的值是标识内部网络适配器的设备显示名称。 这种类型的网络适配器在 Hyper-V 父分区的管理操作系统中公开。
内部网络适配器可由 Hyper-V 父分区和所有子分区访问。 但是,内部网络适配器无法连接到主机上可用的物理网络接口。
注意 设备显示名称由管理操作系统中运行的 Hyper-V WMI 管理层生成。 - 对于所有其他 NicType 成员值, NicName 成员的值由策略管理接口唯一分配给合成或模拟网络适配器。 这些类型的网络适配器在作为 Hyper-V 子分区运行的来宾操作系统中公开。
VFAssigned 成员指南
PCIe VF 由支持 SR-IOV 接口的基础物理适配器创建和分配。 创建 PCIe VF 后,虚拟化堆栈会将 Hyper-V 子分区附加或 分配给 VF。 在此分区中运行的来宾操作系统公开虚拟机 (VM) 附加或 分配给 基础 SR-IOV 物理适配器的网络适配器。如果 VFAssigned 成员设置为 TRUE,数据包将直接在基础 SR-IOV 物理网络适配器和虚拟适配器之间路由。 但是,由于数据包传递中不涉及可扩展交换机,因此可扩展交换机端口策略(如访问控制列表 (ACL) )不适用于这些数据包。
扩展可以通过发出 NDIS_STATUS_SWITCH_PORT_REMOVE_VF 状态指示来删除 VF 分配。 此指示会导致数据包通过可扩展的交换机端口传递,而不是直接在 VM 网络适配器和 SR-IOV 物理适配器之间传递。 这样,可扩展交换机端口策略就可以应用于通过可扩展交换机端口接收或发送的数据包。 当扩展发出 NDIS_STATUS_SWITCH_PORT_REMOVE_VF 状态指示时,它会指定虚拟网络适配器连接到哪个可扩展交换机端口。
有关详细信息,请参阅 NDIS_STATUS_SWITCH_PORT_REMOVE_VF。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 在 NDIS 6.30 及更高版本中受支持。 |
标头 | ntddndis.h (包括 Ndis.h、Fwpsk.h) |
另请参阅