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 구조체의 버전을 지정하려면 HeaderRevision 멤버를 다음 값으로 설정해야 합니다.

NDIS_SWITCH_NIC_PARAMETERS_REVISION_1

NDIS 6.30 이상에 대한 원래 버전입니다.

Size 멤버를 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(Non-Uniform Memory Access) 노드에 대한 식별자를 지정하는 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의 경우 모두 0입니다. 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 내에서 팀 장애 조치(failover)가 발생한 경우 CurrentMacAddress는 장애 조치(failover)가 발생하지 않은 경우 네트워크 어댑터 또는 PermanentMacAddress로 장애 조치(failover)된 MAC 주소와 동일합니다.

VFAssigned

TRUE로 설정된 경우 네트워크 어댑터가 PCI Express(PCIe) VF(가상 함수)에 연결되도록 지정하는 BOOLEAN 값입니다. VF는 SR-IOV(단일 루트 I/O 가상화) 인터페이스를 지원하는 기본 물리적 네트워크 어댑터에 의해 노출됩니다.

자세한 내용은 주의 섹션을 참조하세요.

참고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_NAME, NDIS_SWITCH_NIC_FRIENDLYNAME, NDIS_VM_NAMENDIS_VM_FRIENDLYNAME 데이터 형식은 IF_COUNTED_STRING 구조에 의해 형식으로 정의됩니다. 이 구조체에 의해 정의된 문자열은 null로 종료될 필요가 없습니다. 그러나 문자열의 길이는 이 구조체의 Length 멤버에서 설정해야 합니다. 문자열이 null로 끝나는 경우 Length 멤버는 종료되는 null 문자를 포함하지 않아야 합니다.
 

NicTypeNicName 멤버에 대한 지침

NicType 멤버 값에 따라 NicName 멤버의 형식은 다음과 같습니다.
  • NicType 멤버가 NdisSwitchNicTypeExternal로 설정된 경우 NicName 멤버의 값은 외부 네트워크 어댑터에 바인딩된 실제 네트워크 어댑터의 고유한 instance 식별자(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 이상에서 지원됩니다.
머리글 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