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 구조체로 형식이 지정됩니다.

미니포트 드라이버는 헤더Type 멤버를 NDIS_OBJECT_TYPE_DEFAULT 설정해야 합니다. NDIS_NIC_SWITCH_CAPABILITIES 구조체의 버전을 지정하려면 드라이버는 HeaderRevision 멤버를 다음 값 중 하나로 설정해야 합니다.

NDIS_NIC_SWITCH_CAPABILITIES_REVISION_3

NDIS 6.60에 대한 RSS 인터페이스 멤버가 추가되었습니다.

참고 이 구조의 수정 버전 3은 Windows Server 2016 이상 버전의 Windows Server에서만 지원됩니다.

 

Size 멤버를 NDIS_SIZEOF_NIC_SWITCH_CAPABILITIES_REVISION_3 설정합니다.

NDIS_NIC_SWITCH_CAPABILITIES_REVISION_2

NDIS 6.30에 대한 SR-IOV(단일 루트 I/O 가상화) 인터페이스 멤버가 추가되었습니다.

참고 이 구조의 수정 버전 2는 Windows Server 2012 이상 버전의 Windows Server에서만 지원됩니다.

 

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

네트워크 어댑터가 지원하는 MAC(미디어 액세스 제어) 주소의 총 수를 포함하는 ULONG 값입니다.

참고 드라이버는 이 구조체의 수정 버전 2 이상에 대해 이 멤버를 0으로 설정해야 합니다.
 

NumMacAddressesPerPort

각 포트에 대해 지원되는 MAC 주소 수를 포함하는 ULONG 값입니다.

참고 드라이버는 이 구조체의 수정 버전 2 이상에 대해 이 멤버를 0으로 설정해야 합니다.
 

NumVlansPerPort

각 포트에 대해 지원되는 VLAN 수를 포함하는 ULONG 값입니다.

참고 드라이버는 이 구조체의 수정 버전 2 이상에 대해 이 멤버를 0으로 설정해야 합니다.
 

NdisReserved2

NDIS용으로 예약되었습니다.

NdisReserved3

NDIS용으로 예약되었습니다.

NicSwitchCapabilities

NIC 스위치의 기능을 지정하는 다음 플래그의 비트 OR을 포함하는 ULONG 값입니다.

NDIS_NIC_SWITCH_CAPS_RSS_ON_PF_VPORTS_SUPPORTED

참고 이 플래그는 Windows Server 2016 이상에서 지원됩니다. NDIS 6.60에서 도입되었습니다.

NIC가 PF VPort에 대한 VMMQ를 지원한다고 지정합니다.

NDIS_NIC_SWITCH_CAPS_RSS_PER_PF_VPORT_INDIRECTION_TABLE_SUPPORTED

참고 이 플래그는 Windows Server 2016 이상에서 지원됩니다. NDIS 6.60에서 도입되었습니다.

1로 설정하면 NIC가 PF별 VPort 간접 테이블을 유지할 수 있도록 지정합니다.

NDIS_NIC_SWITCH_CAPS_RSS_PER_PF_VPORT_HASH_FUNCTION_SUPPORTED

참고 이 플래그는 Windows Server 2016 이상에서 지원됩니다. NDIS 6.60에서 도입되었습니다.

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

참고 이 플래그는 Windows Server 2016 이상에서 지원됩니다. NDIS 6.60에서 도입되었습니다.

1로 설정하면 NIC가 PF VPort당 다른 해시 형식 설정을 지원하도록 지정합니다.

NDIS_NIC_SWITCH_CAPS_RSS_PER_PF_VPORT_HASH_KEY_SUPPORTED

참고 이 플래그는 Windows Server 2016 이상에서 지원됩니다. NDIS 6.60에서 도입되었습니다.

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

참고 이 플래그는 Windows Server 2016 이상에서 지원됩니다. NDIS 6.60에서 도입되었습니다.

1로 설정하면 NIC에 PF VPorts에 대한 간접 참조 테이블 크기에 제한이 있음을 지정합니다. 이 플래그는 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

참고 이 플래그는 Windows Server 2016 이상에서 지원됩니다.

NDIS 6.60에서 도입된 이 플래그는 SR-IOV를 사용하지 않고 NIC 스위치를 만들 수 있도록 지정합니다. 이 플래그를 사용하면 *SRIOV 키워드(keyword) NIC 스위치를 분리할 수 있습니다. 즉, *SRIOV = 0인 경우에도 OID_NIC_SWITCH_CREATE_SWITCH 통해 NIC 스위치를 만들 수 있습니다.

NDIS 6.60 이상 미니포트 드라이버에 대한 NIC 스위치 기능을 보고하는 방법에 대한 자세한 내용은 NIC 스위치 기능 확인을 참조하세요.

NDIS_NIC_SWITCH_CAPS_VLAN_SUPPORTED

이 플래그는 NIC 스위치가 VLAN(가상 로컬 영역 네트워크) ID(식별자)를 기반으로 하드웨어 패킷 필터링을 지원한다고 지정합니다.

참고 이 플래그는 NIC 스위치가 개별 SR-IOV VPort(가상 포트)에서 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에 설정된 큐 쌍의 수와 다를 수 있습니다.

참고 큐 쌍은 전송 큐와 수신 큐로 구성됩니다. 기본 VPort와 연결된 큐 쌍은 스위치를 만들 때 OID_NIC_SWITCH_CREATE_SWITCH OID 메서드 요청을 통해 구성됩니다. 하나 이상의 큐 쌍은 OID_NIC_SWITCH_CREATE_VPORT OID 메서드 요청을 통해 기본이 아닌 VPort에 구성됩니다.
 
자세한 내용은 큐 쌍의 대칭 및 비대칭 할당을 참조하세요.

NDIS_NIC_SWITCH_CAPS_VF_RSS_SUPPORTED

이 플래그는 PCI Express(PCIe) VF(가상 함수)에 연결된 기본이 아닌 VPort의 큐 쌍을 RSS(수신 측 크기 조정)에 사용할 수 있도록 지정합니다. VF 미니포트 드라이버는 Hyper-V 자식 파티션의 게스트 운영 체제에서 실행됩니다.

이 플래그가 설정된 경우 미니포트 드라이버는 VF에서 RSS를 지원하며 RSS용 기본이 아닌 VPort의 큐 쌍 중 하나 이상을 사용할 수 있습니다.

참고 Windows Server 2012 시작하여 기본이 아닌 VPort 하나만 VF에 연결할 수 있습니다.
 

NDIS_NIC_SWITCH_CAPS_SINGLE_VPORT_POOL

이 플래그는 비기본 VPort를 네트워크 어댑터의 VPort 풀에서 예약되지 않은 방식으로 만들 수 있도록 지정합니다. 이렇게 하면 PF 및 할당된 VF에 필요에 따라 사용 가능한 기본이 아닌 VPort를 만들고 할당할 수 있습니다. 네트워크 어댑터가 VMQ(가상 머신 큐) 인터페이스를 지원하는 경우 PF에 할당된 기본이 아닌 VPort를 VM 수신 큐에도 사용할 수 있습니다.

참고 기본 VPort는 항상 PF 할당을 위해 예약됩니다.
 
이 플래그가 설정되면 사용 가능한 기본이 아닌 VPort가 만들어지고 PF 및 할당된 VF에 할당됩니다. 그러나 이 메커니즘은 VF 만들기 및 할당을 위해 기본이 아닌 VPort를 예약하지 않습니다. 결과적으로 풀에 사용 가능한 VPort가 소진된 경우 VF에 VPort가 할당되지 않을 수 있는 상황이 발생할 수 있습니다.
참고 VF를 VPort에 할당할 수 없는 경우 VF를 통해 패킷 트래픽이 SR-IOV 가상 데이터 경로를 통해 발생합니다. 이 데이터 경로에 대한 자세한 내용은 SR-IOV 데이터 경로를 참조하세요.
 
이 플래그가 설정되지 않은 경우 기본이 아닌 VPort의 생성 및 할당은 VF 할당을 위해 예약됩니다. 추가 비기본 VPort를 만들고 PF에 할당할 수 있습니다.

VMQ에 대한 자세한 내용은 VMQ(가상 머신 큐)를 참조하세요.

VPort에 대한 자세한 내용은 가상 포트 관리를 참조하세요.

MaxNumSwitches

네트워크 어댑터의 PCIe(PCI Express) PF(물리적 함수)에서 만들 수 있는 스위치의 최대 수를 지정하는 ULONG 값입니다.

참고 Windows Server 2012 Windows는 네트워크 어댑터의 기본 NIC 스위치만 지원합니다. 따라서 이 멤버는 항상 1로 설정해야 합니다.
 

MaxNumVPorts

네트워크 어댑터에서 만들 수 있는 VPort의 최대 수를 지정하는 ULONG 값입니다. 여기에는 항상 PF에 연결된 기본 VPort가 포함됩니다.

참고 NIC 스위치는 적어도 (MaxNumVFs + 1) VPort를 지원해야 합니다.
 

NdisReserved4

NDIS용으로 예약되었습니다.

MaxNumVFs

NIC 스위치에서 만들 수 있는 최대 VF 수를 지정하는 ULONG 값입니다.

참고 네트워크 어댑터에서 사용 가능한 하드웨어 리소스에 따라 미니포트 드라이버는 MaxNumVFs 멤버를 *NumVFs 키워드(keyword) 미만의 값으로 설정할 수 있습니다. 이 키워드(keyword) 대한 자세한 내용은 SR-IOV용 표준화된 INF 키워드를 참조하세요.
 

MaxNumQueuePairs

모든 VPort에 할당할 수 있는 최대 큐 쌍 수를 지정하는 ULONG 값입니다. 여기에는 PF에 연결된 기본 VPort가 포함됩니다.

참고 이 값은 MaxNumVPorts 값보다 크거나 같아야 합니다.
 

NdisReserved5

NDIS용으로 예약되었습니다.

NdisReserved6

NDIS용으로 예약되었습니다.

NdisReserved7

NDIS용으로 예약되었습니다.

MaxNumQueuePairsPerNonDefaultVPort

기본이 아닌 VPort에 할당할 수 있는 최대 큐 쌍 수를 지정하는 ULONG 값입니다.

이 값은 2의 권한으로 지정되며 비대칭 구성 및 VPort에 큐 쌍 할당을 제공합니다. 자세한 내용은 큐 쌍의 대칭 및 비대칭 할당을 참조하세요.

NdisReserved8

NDIS용으로 예약되었습니다.

NdisReserved9

NDIS용으로 예약되었습니다.

NdisReserved10

NDIS용으로 예약되었습니다.

NdisReserved11

NDIS용으로 예약되었습니다.

NdisReserved12

NDIS용으로 예약되었습니다.

MaxNumMacAddresses

NIC 스위치에서 사용할 수 있는 유니캐스트 MAC 주소 필터의 최대 수를 지정하는 ULONG 값입니다.

참고 이 값은 MaxNumVPorts 값보다 크거나 같아야 합니다. 이렇게 하면 각 VPort(기본 VPort 포함)가 하나 이상의 유니캐스트 MAC 주소 필터를 포함하도록 구성할 수 있습니다.
 

NdisReserved13

NDIS용으로 예약되었습니다.

NdisReserved14

NDIS용으로 예약되었습니다.

NdisReserved15

NDIS용으로 예약되었습니다.

NdisReserved16

NDIS용으로 예약되었습니다.

NdisReserved17

NDIS용으로 예약되었습니다.

MaxNumRssCapableNonDefaultPFVPorts

RSS 지원 비 기본 PFVPort의 최대 수를 지정하는 ULONG 값입니다.

NumberOfIndirectionTableEntriesForDefaultVPort

기본 VPort에 대한 간접 참조 테이블 항목 수를 지정하는 ULONG 값입니다.

NumberOfIndirectionTableEntriesPerNonDefaultPFVPort

기본이 아닌 각 PFVPort에 대한 간접 테이블 항목 수를 지정하는 ULONG 값입니다.

MaxNumQueuePairsForDefaultVPort

기본 VPort에 할당할 수 있는 최대 큐 쌍 수를 지정하는 ULONG 값입니다.

이 값은 2의 권한으로 지정되며 비대칭 구성 및 VPort에 큐 쌍 할당을 제공합니다. 자세한 내용은 큐 쌍의 대칭 및 비대칭 할당을 참조하세요.

설명

NDIS_NIC_SWITCH_CAPABILITIES 구조체는 다음 구조체의 멤버에서 사용됩니다.

OID_NIC_SWITCH_CURRENT_CAPABILITIES 및 의 OID 쿼리 요청 OID_NIC_SWITCH_HARDWARE_CAPABILITIESNDIS_NIC_SWITCH_CAPABILITIES 구조를 반환합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 NDIS 6.20 이상에서 지원됩니다.
머리글 ntddndis.h(Ndis.h 포함)

추가 정보

NDIS_BIND_PARAMETERS

NDIS_FILTER_ATTACH_PARAMETERS

NDIS_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES

NDIS_OBJECT_HEADER

OID_NIC_SWITCH_CREATE_VPORT

OID_NIC_SWITCH_CURRENT_CAPABILITIES

OID_NIC_SWITCH_HARDWARE_CAPABILITIES