OID_NIC_SWITCH_ALLOCATE_VF 요청 발급
PCI Express(PCIe) PF(물리적 함수)에 대한 미니포트 드라이버에 OID_NIC_SWITCH_ALLOCATE_VF OID(개체 식별자) 메서드 요청을 실행하기 전에 오버리싱 드라이버는 NDIS_NIC_SWITCH_VF_PARAMETERS 구조의 형식을 지정합니다. 이 구조에는 네트워크 어댑터의 PCIe VF(가상 함수)에 할당할 리소스에 대한 구성 매개 변수가 포함되어 있습니다. 오버리싱 드라이버는 다음과 같은 방식으로 이 구조체의 멤버를 설정해야 합니다.
SwitchId 멤버는 네트워크 어댑터에서 이전에 만든 NIC 스위치의 식별자로 설정해야 합니다. NIC 스위치는 OID_NIC_SWITCH_CREATE_SWITCH OID 메서드 요청을 통해 만들어집니다.
OID_NIC_SWITCH_ALLOCATE_VF OID 메서드 요청을 처리하는 경우 PF(PCIe 물리적 함수)의 미니포트 드라이버는 VF에 대한 리소스를 할당합니다. 리소스가 성공적으로 할당되면 PF 미니포트 드라이버는 지정된 NIC 스위치에 VF를 할당합니다.
참고 Windows Server 2012 NDIS 6.30부터 SR-IOV 인터페이스는 네트워크 어댑터의 기본 NIC 스위치만 지원합니다. SwitchId 멤버의 값은 NDIS_DEFAULT_SWITCH_ID 설정해야 합니다.
NIC 스위치에 대한 자세한 내용은 NIC 스위치를 참조하세요.
VFId 멤버는 NDIS_INVALID_VF_FUNCTION_ID 설정해야 합니다.
RequestorId 멤버는 NDIS_INVALID_RID 설정해야 합니다.
VMFriendlyName 및 VMName 멤버를 Hyper-V 자식 파티션의 매개 변수로 설정해야 합니다. PF 미니포트 드라이버는 정보 목적으로만 이러한 멤버를 사용합니다.
참고 Hyper-V 자식 파티션을 VM(가상 머신)으로도 알려져 있습니다.
VF는 오버리딩 드라이버가 OID_NIC_SWITCH_CREATE_SWITCH 요청을 발급하기 전에 지정된 VM과 연결됩니다.
NicName 멤버는 VM(가상 머신) 네트워크 어댑터의 식별자로 설정해야 합니다. 이 가상 어댑터는 VM에서 실행되는 게스트 운영 체제에 노출됩니다. PF 미니포트 드라이버는 정보 목적으로만 이 멤버를 사용합니다.
리소스가 VF에 할당되고 자식 파티션에 연결된 경우 VF 네트워크 어댑터가 게스트 운영 체제에 노출됩니다. VM 네트워크 어댑터는 하드웨어 기반 VF 데이터 경로를 통해 패킷 전송을 위해 VF 네트워크 어댑터를 사용하여 팀을 구성합니다.
그러나 VF는 라이브 마이그레이션 중과 같이 자식 파티션에서 분리될 수 있습니다. 이 경우 소프트웨어 기반 가상 데이터 경로를 통해 패킷 전송이 발생합니다. 이러한 데이터 경로에 대한 자세한 내용은 SR-IOV 데이터 경로를 참조하세요.
PermanentMacAddress 및 CurrentMacAddress 멤버는 VF의 가상 네트워크 어댑터에 대한 MAC(미디어 액세스 제어) 주소로 설정해야 합니다. 이러한 주소는 Hyper-V 자식 파티션의 게스트 운영 체제에서 실행되는 네트워크 스택에 노출됩니다.
오버리싱 드라이버는 다음 단계에 따라 OID_NIC_SWITCH_ALLOCATE_VF OID 메서드 요청을 실행합니다.
오버리싱 드라이버는 OID 메서드 요청에 대한 NDIS_OID_REQUEST 구조를 초기화합니다. 드라이버는 InformationBuffer 멤버를 초기화된 NDIS_NIC_SWITCH_VF_PARAMETERS 구조체에 대한 포인터로 설정합니다.
지나치게 많은 드라이버는 NdisOidRequest 를 호출하여 기본 PF 미니포트 드라이버에 OID 요청을 실행합니다.
참고 오버레이 드라이버가 NdisOidRequest를 호출하면 NDIS는 OID 요청을 가로채 NDIS_NIC_SWITCH_VF_PARAMETERS 구조에 지정된 VF 매개 변수를 확인합니다. 매개 변수가 성공적으로 확인되면 NDIS는 OID를 PF 미니포트 드라이버에 전달합니다. 그렇지 않으면 NDIS가 NDIS_STATUS_INVALID_PARAMETER 사용하여 OID 요청에 실패합니다.
지나치게 많은 드라이버가 VF에 대한 리소스 할당을 요청한 후 해당 드라이버는 동일한 VF에 대한 리소스 해제를 요청할 수 있는 유일한 구성 요소입니다. 오버리싱 드라이버는 VF 리소스를 해제하려면 OID_NIC_SWITCH_FREE_VF OID 집합 요청을 실행해야 합니다. 오버리싱 드라이버를 중지하려면 먼저 드라이버의 OID_NIC_SWITCH_ALLOCATE_VF 요청에 의해 할당된 각 VF에 대한 리소스를 해제해야 합니다.