共用方式為


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 結構。

HeaderType 成員必須設定為 NDIS_OBJECT_TYPE_DEFAULT。 若要指定NDIS_SWITCH_NIC_PARAMETERS結構的版本,標頭Revision 成員必須設定為下列值:

NDIS_SWITCH_NIC_PARAMETERS_REVISION_1

NDIS 6.30 和更新版本的原始版本。

Size 成員設定為 NDIS_SIZEOF_NDIS_SWITCH_NIC_PARAMETERS_REVISION_1

Flags

包含旗標位 ORULONG 值。 已定義下列旗標值。

意義
NDIS_SWITCH_NIC_FLAGS_NIC_INITIALIZING
當 VM NIC 物件存留期內第一次發出 OID_SWITCH_NIC_CREATE OID 時,就會設定此旗標。 如果已設定此旗標:
  • 如果 Hyper-V Extensible Switch 擴充功能在將 OID 傳遞至堆疊之前,需要保留前端以供封裝,則可以選擇性地減少NDIS_SWITCH_NIC_PARAMETERS結構中的 MTU 成員值。 擴充功能將無法為任何其他類型的 NIC 保留封裝前端空間。
  • 延伸模組不應增加 MTU 值。
只有當 NicType 成員是 NdisSwitchNicTypeSynthetic 時,才會設定此旗標。

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) 。

注意只有當 NicType 成員包含 NdisSwitchNicSyntheticNicNdisSwitchNicEmulatedNic 的值時,這個成員才有效。
 

VmFriendlyName

NetCfgInstanceId

GUID 值,指定基礎網路適配器的 NetCfgInstanceId 登錄值。

注意 只有當 NicType 成員設定為 NdisSwitchNicTypeExternalNdisSwitchNicTypeInternal 時,此成員才有效。 在虛擬網路適配器初始化之後,NetCfgInstanceId 才會有效。
 

MTU

ULONG 值,指定網路適配器的最大傳輸單位 (MTU) 大小,以位元組為單位。

注意 此成員的值可以在 VM NIC 的存留期間變更。 因此,延伸模組應該讀取 NDIS_SWITCH_NIC_PARAMETERS結構的成員 ,此結構會以下列 OID 傳遞:
 

NumaNodeId

USHORT 值,指定 CPU 的慣用非統一記憶體存取 (NUMA) 節點的識別符。 在支援 NUMA 架構的電腦上,慣用的 NUMA 節點是與網路適配器最小距離的 CPU。

注意 只有當 NicType 成員設定為 NdisSwitchNicTypeSyntheticNdisSwitchNicTypeEmulated 時,此成員才有效。
 

PermanentMacAddress[NDIS_MAX_PHYS_ADDRESS_LENGTH]

UCHAR 陣列,指定在網路適配器的主機分割區上所設定的媒體存取控制 (MAC) 位址。 這與網路適配器目前使用的 MAC 位址不同。

VMMacAddress[NDIS_MAX_PHYS_ADDRESS_LENGTH]

UCHAR 陣列,指定 VM 本身內網路配接器上設定的 MAC 位址。 欄位是非 VM NIC 的所有零。 如果 AllowMacSpoofing (from NDIS_SWITCH_PORT_PROPERTY_SECURITY) 為 TRUE,此位址也會套用至 CurrentMacAddress。

CurrentMacAddress[NDIS_MAX_PHYS_ADDRESS_LENGTH]

UCHAR 陣列,指定目前用於網路適配器交換器中的 MAC 位址。 如果 AllowMacSpoofingAllowTeaming 都是 FALSE,則此值會等於 PermanentMacAddress。 如果 AllowMacSpoofing 為 TRUE,這個值會等於 VMMacAddress。 如果 AllowTeaming 為 TRUE,且在 VM 內發生小組故障轉移, 則 CurrentMacAddress 會等於故障轉移至網路適配器的 MAC 位址;如果未發生故障轉移,則 為 PermanentMacAddress

VFAssigned

BOOLEAN 值,如果設定為 TRUE,則會指定網路適配器已連接到 PCI Express (PCIe) 虛擬函式 (VF) 。 VF 是由支援單一根目錄 I/O 虛擬化的基礎實體網路適配器所公開, (SR-IOV) 介面。

如需詳細資訊,請參閱<備註>一節。

注意只有在 NicType 成員包含 NdisSwitchNicTypeEmulatedNdisSwitchNicTypeSynthetic 的值時,VFAssigned 成員才有效。 如果 NicType 成員包含 NdisSwitchNicTypeExternalNdisSwitchNicTypeInternal 的值,則必須將此成員設定為 FALSE
 

NdisReserved[2]

備註

OID_SWITCH_NIC_ARRAY的 OID 查詢要求 傳回包含零個或多個專案的 NDIS_SWITCH_NIC_ARRAY 結構。 每個元素都會格式化為 NDIS_SWITCH_NIC_PARAMETERS 結構。

NDIS_SWITCH_NIC_PARAMETERS結構也用於下列 OID 要求:

注意NDIS_SWITCH_NIC_NAMENDIS_SWITCH_NIC_FRIENDLYNAMENDIS_VM_NAMENDIS_VM_FRIENDLYNAME數據類型是由IF_COUNTED_STRING結構所定義。 這個結構所定義的字串不需要以 Null 結束。 不過,字串的長度必須在這個 結構的 Length 成員中設定。 如果字串為 Null 終止, Length 成員不得包含終止的 Null 字元。
 

NicTypeNicName 成員的指導方針

根據 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)

另請參閱

NDIS_OBJECT_HEADER

NDIS_STATUS_SWITCH_PORT_REMOVE_VF

NDIS_SWITCH_NIC_ARRAY

NDIS_SWITCH_NIC_PARAMETERS

NDIS_SWITCH_NIC_STATE

NDIS_SWITCH_NIC_TYPE

OID_SWITCH_NIC_ARRAY

OID_SWITCH_NIC_CONNECT

OID_SWITCH_NIC_CREATE

OID_SWITCH_NIC_DELETE

OID_SWITCH_NIC_DISCONNECT

OID_SWITCH_NIC_SAVE

OID_SWITCH_NIC_SAVE_COMPLETE

OID_SWITCH_NIC_UPDATED