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構造体のバージョンを指定するには、HeaderRevision メンバーを次の値に設定する必要があります。

NDIS_SWITCH_NIC_PARAMETERS_REVISION_1

NDIS 6.30 以降の元のバージョン。

[サイズ] メンバーを [NDIS_SIZEOF_NDIS_SWITCH_NIC_PARAMETERS_REVISION_1] に設定します。

Flags

フラグのビットごとの OR を含む ULONG 値。 次のフラグ値が定義されています。

意味
NDIS_SWITCH_NIC_FLAGS_NIC_INITIALIZING
このフラグは、 OID_SWITCH_NIC_CREATE OID が VM NIC オブジェクトの有効期間中に初めて発行されるときに設定されます。 このフラグが設定されている場合:
  • Hyper-V 拡張可能スイッチ拡張機能は、必要に応じて、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

PortId メンバーによって指定された拡張可能スイッチ ポートに接続されているネットワーク アダプターのインデックスを指定するNDIS_SWITCH_NIC_INDEX値。

NDIS_SWITCH_NIC_INDEX値の詳細については、「 ネットワーク アダプターのインデックス値」を参照してください。

NicType

拡張可能スイッチ ポートに接続されているネットワーク アダプターの種類を指定するNDIS_SWITCH_NIC_TYPE値。

NicState

ネットワーク アダプターの現在 の状態を指定するNDIS_SWITCH_NIC_STATE値。

VmName

ネットワーク アダプターを公開するゲスト オペレーティング システムが実行されている Hyper-V 子パーティションの一意の内部名を指定するNDIS_VM_NAME値。

Hyper-V 子パーティションは、仮想マシン (VM) とも呼ばれます。

メモ このメンバーは、 NicType メンバーに NdisSwitchNicSyntheticNic または NdisSwitchNicEmulatedNic の値が含まれている場合にのみ有効です
 

VmFriendlyName

NetCfgInstanceId

基になるネットワーク アダプターの NetCfgInstanceId レジストリ値を指定する GUID 値。

メモ このメンバーは、 NicType メンバーが NdisSwitchNicTypeExternal または NdisSwitchNicTypeInternal に設定されている場合にのみ有効です。 NetCfgInstanceId は、仮想ネットワーク アダプターが初期化されるまで有効ではありません。
 

MTU

ネットワーク アダプターの最大伝送単位 (MTU) サイズをバイト単位で指定する ULONG 値。

メモ このメンバーの値は、VM NIC の有効期間中に変更される可能性があります。 したがって、拡張機能は、次の OID で渡される NDIS_SWITCH_NIC_PARAMETERS 構造体のこのメンバーを読み取る必要があります。
 

NumaNodeId

CPU の優先される非均一メモリ アクセス (NUMA) ノードの識別子を指定する USHORT 値。 NUMA アーキテクチャをサポートするコンピューターでは、推奨される NUMA ノードは、ネットワーク アダプターまでの距離が最も小さい CPU です。

メモ このメンバーは、 NicType メンバーが NdisSwitchNicTypeSynthetic または NdisSwitchNicTypeEmulated に設定されている場合にのみ有効です。
 

PermanentMacAddress[NDIS_MAX_PHYS_ADDRESS_LENGTH]

ネットワーク アダプターのホスト パーティションで構成されているメディア アクセス制御 (MAC) アドレスを指定する UCHAR 配列。 これは、ネットワーク アダプターで現在使用されている MAC アドレスとは異なる場合があります。

VMMacAddress[NDIS_MAX_PHYS_ADDRESS_LENGTH]

VM 自体内のネットワーク アダプターで構成されている MAC アドレスを指定する UCHAR 配列。 フィールドは、VM NIC 以外の場合、すべてゼロです。 AllowMacSpoofing (NDIS_SWITCH_PORT_PROPERTY_SECURITY から) が TRUE の場合、このアドレスは CurrentMacAddress にも適用されます。

CurrentMacAddress[NDIS_MAX_PHYS_ADDRESS_LENGTH]

ネットワーク アダプターのスイッチで現在使用されている MAC アドレスを指定する UCHAR 配列。 AllowMacSpoofingAllowTeaming の両方が FALSE の場合、この値は PermanentMacAddress と等しくなります。 AllowMacSpoofing が TRUE の場合、この値は VMMacAddress と等しくなります。 AllowTeaming が TRUE で、VM 内でチーミング フェールオーバーが発生した場合、フェールオーバーが発生していない場合、CurrentMacAddress はネットワーク アダプターまたは PermanentMacAddress にフェールオーバーされた MAC アドレスと同じになります。

VFAssigned

TRUE に設定されている場合、ネットワーク アダプターが PCI Express (PCIe) 仮想関数 (VF) に接続されていることを指定するブール値。 VF は、単一ルート I/O 仮想化 (SR-IOV) インターフェイスをサポートする基になる物理ネットワーク アダプターによって公開されます。

詳細については、「解説」を参照してください。

メモVFAssigned メンバーは、NicType メンバーに NdisSwitchNicTypeEmulated または NdisSwitchNicTypeSynthetic の値が含まれている場合にのみ有効です。 NicType メンバーに NdisSwitchNicTypeExternal または NdisSwitchNicTypeInternal の値が含まれている場合、このメンバーは FALSE に設定する必要があります。
 

NdisReserved[2]

注釈

OID_SWITCH_NIC_ARRAY の OID クエリ要求は、0 個以上の要素を含むNDIS_SWITCH_NIC_ARRAY構造体を返します。 各要素は、 NDIS_SWITCH_NIC_PARAMETERS 構造体として書式設定されます。

NDIS_SWITCH_NIC_PARAMETERS構造体は、次の OID 要求でも使用されます。

メモNDIS_SWITCH_NIC_NAMENDIS_SWITCH_NIC_FRIENDLYNAMENDIS_VM_NAMEおよびNDIS_VM_FRIENDLYNAMEのデータ型は、IF_COUNTED_STRING構造体によって型定義されます。 この構造体で定義されている文字列は、null で終わる必要はありません。 ただし、文字列の長さは、この構造体の Length メンバーで設定する必要があります。 文字列が null で終わる場合は、 Length メンバーに終端の null 文字を含めてはいけません。
 

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 にアタッチまたは 割り当てられます。 このパーティションで実行されるゲスト オペレーティング システムは、接続されているか、基になる SR-IOV 物理アダプターに 割り当てられている 仮想マシン (VM) ネットワーク アダプターを公開します。

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 以降でサポートされています。
Header 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