Share via


가상 포트의 매개 변수 설정

지나치게 많은 드라이버는 SR-IOV(단일 루트 I/O 가상화)를 지원하는 네트워크 어댑터의 NIC 스위치에서 VPort(가상 포트)에 대한 매개 변수를 변경할 수 있습니다. 드라이버는 이러한 매개 변수를 변경하기 위해 OID_NIC_SWITCH_VPORT_PARAMETERS OID(개체 식별자) 집합 요청을 발급합니다.

지나치게 많은 드라이버가 이 OID 집합 요청을 발급하기 전에 VPort에서 변경할 매개 변수를 사용하여 NDIS_NIC_SWITCH_VPORT_PARAMETERS 구조를 초기화해야 합니다. 그런 다음 드라이버는 OID 요청에 대한 NDIS_OID_REQUEST 구조를 초기화하고 InformationBuffer 멤버를 NDIS_NIC_SWITCH_VPORT_PARAMETERS 구조체에 대한 포인터로 설정합니다.

VPort에 대한 구성 매개 변수의 제한된 하위 집합만 변경할 수 있습니다. 오버리싱 드라이버는 NDIS_NIC_SWITCH_VPORT_PARAMETERS 구조체의 다음 멤버를 설정하여 변경할 매개 변수를 지정합니다.

  • SwitchId 멤버는 매개 변수를 반환할 NIC 스위치의 식별자로 설정해야 합니다.

    참고 Windows Server 2012 SR-IOV 인터페이스는 네트워크 어댑터에서 하나의 NIC 스위치만 지원합니다. 이 스위치를 기본 NIC 스위치라고 합니다. SwitchId 멤버는 NDIS_DEFAULT_SWITCH_ID 설정해야 합니다.

  • VPortId 멤버는 VPort와 연결된 식별자로 설정해야 합니다. 오버리싱 드라이버는 다음 방법 중 하나를 통해 VPort 식별자를 가져옵니다.

  • 적절한 NDIS_NIC_SWITCH_VPORT_PARAMS_Xxx_CHANGED 플래그는 Flags 멤버에 설정해야 합니다. 해당 NDIS_NIC_SWITCH_VPORT_PARAMS_Xxx_CHANGED 플래그가 Ntddndis.h에 정의된 경우에만 NDIS_NIC_SWITCH_VPORT_PARAMETERS 구조체의 멤버를 변경할 수 있습니다.

  • Flags 멤버에 설정된 NDIS_NIC_SWITCH_VPORT_PARAMS_Xxx_CHANGED 플래그에 해당하는 NDIS_NIC_SWITCH_VPORT_PARAMETERS 구조체의 멤버는 변경할 VPort 구성 매개 변수를 사용하여 설정됩니다.

Windows Server 2012 시작하여 NDIS_NIC_SWITCH_VPORT_PARAMETERS 구조체의 다음 멤버만 OID_NIC_SWITCH_VPORT_PARAMETERS OID 집합 요청을 통해 변경할 수 있습니다.

PortName
이 멤버에는 VPort에 대한 사용자에게 친숙한 설명이 포함되어 있습니다.

인터럽트모더레이션
이 멤버는 VPort의 인터럽트 조정 설정을 지정합니다.

ProcessorAffinity
이 멤버는 이 VPort와 연결할 수 있는 CPU의 그룹 번호와 비트맵을 지정합니다.

오버리싱 드라이버는 VPort에 대한 ProcessorAffinity 멤버를 변경하기 위한 다음 지침을 따라야 합니다.

  • 이 멤버는 PF에 연결된 VPort에 대해서만 유효합니다. 이 필드는 VF에 연결된 기본이 아닌 VPort에 대해 유효하지 않습니다.

  • PF에 연결된 기본이 아닌 VPort의 경우 VPort를 만들 때 하나 이상의 프로세서를 지정해야 합니다. 기본이 아닌 VPort와 연결된 프로세서 선호도는 VPort를 만든 후에 변경할 수 있습니다.

    참고 기본이 아닌 VPort는 OID_NIC_SWITCH_CREATE_VPORT OID 메서드 요청을 통해 만들어집니다.

VPortState
이 멤버는 VPort의 현재 상태를 지정합니다.

오버리싱 드라이버는 VPort에 대한 VPortState 멤버를 변경하기 위한 다음 지침을 따라야 합니다.

  • VF에 연결된 기본이 아닌 VPort의 경우 VPortState 멤버는 항상 NdisNicSwitchVPortStateActivated로 설정되어야 합니다.

  • PF에 연결된 기본이 아닌 VPort의 경우 VPort를 만들 때 VPortState 멤버를 NdisNicSwitchVPortStateDeactivated 로 설정해야 합니다. PF VPort는 VPortState를 활성화된 상태로 변경하기 위해 지나치게 많은 드라이버가 OID_NIC_SWITCH_VPORT_PARAMETERS OID 집합 요청을 실행한 후에만 활성화됩니다.

    기본이 아닌 VPort가 활성화되면 PF 미니포트 드라이버는 NdisAllocateSharedMemory를 통해 할당된 공유 메모리와 같은 VPort에 대한 리소스를 할당할 수 있습니다. PF 미니포트 드라이버는 드라이버가 OID_NIC_SWITCH_DELETE_VPORT OID 집합 요청을 통해 VPort를 삭제할 때까지 활성화된 후 언제든지 VPort에 대한 리소스를 할당할 수 있습니다.

  • 기본 VPort는 항상 활성화된 상태입니다. VPortState 멤버의 값은 항상 기본 VPort에 대해 NdisNicSwitchVPortStateActivated로 설정되어야 합니다.

  • VPort가 활성화된 상태이면 비활성화할 수 없습니다. PF 미니포트 드라이버는 활성화된 상태이고 해당 MAC 필터가 VPort에 설정된 경우에만 VPort에서 패킷을 수신하고 전송할 수 있습니다. 그러나 OID_NIC_SWITCH_DELETE_VPORT OID 집합 요청을 통해 VPort를 삭제한 후 드라이버는 VPort에 할당된 리소스를 해제해야 합니다. 또한 드라이버는 VPort의 패킷에 대해 보류 중인 모든 전송 또는 수신 작업을 취소해야 합니다.

PF 미니포트 드라이버가 OID_NIC_SWITCH_VPORT_PARAMETERS OID 집합 요청을 받으면 드라이버는 구성 매개 변수를 사용하여 하드웨어를 구성합니다. 드라이버는 NDIS_NIC_SWITCH_VPORT_PARAMETERS 구조체Flags 멤버에서 NDIS_NIC_SWITCH_VPORT_PARAMETERS_Xxx_CHANGED 플래그로 식별된 구성 매개 변수만 변경할 수 있습니다.