다음을 통해 공유


정적 NIC 스위치 만들기

SR-IOV(단일 루트 I/O 가상화)를 지원하는 네트워크 어댑터는 NIC 스위치를 만들 수 있어야 합니다. 일부 어댑터의 경우 MiniportInitializeEx 호출 컨텍스트 내에서 NIC 스위치를 정적으로 만들 수 있습니다.

SR-IOV 어댑터의 PCI Express(PCIe) PF(물리적 함수)용 미니포트 드라이버만 어댑터에 NIC 스위치를 만들 수 있습니다.

참고 Windows Server 2012 SR-IOV 인터페이스는 네트워크 어댑터에서 하나의 NIC 스위치만 지원합니다. 이 스위치를 기본 NIC 스위치라고 하며 NDIS_DEFAULT_SWITCH_ID 식별자에서 참조합니다.

기본 NIC 스위치에 대한 매개 변수는 레지스트리의 표준화된 키워드(keyword) 설정을 통해 정의됩니다. 이러한 키워드에 대한 자세한 내용은 SR-IOV에 대한 표준화된 INF 키워드를 참조하세요.

PF 미니포트 드라이버는 NDIS가 드라이버의 MiniportInitializeEx 함수를 호출할 때 NIC 스위치를 정적으로 만듭니다. 일반적으로 드라이버는 네트워크 어댑터에서 SR-IOV를 사용하도록 설정하기 전에 초기화 시퀀스의 일부로 NIC 스위치를 만들고 구성합니다.

PF 미니포트 드라이버는 NIC 스위치를 정적으로 만들고 MiniportInitializeEx 호출 컨텍스트에서 네트워크 어댑터에서 SR-IOV를 사용하도록 설정할 때 다음 단계를 수행합니다.

  1. PF 미니포트 드라이버는 SR-IOV 표준화된 키워드를 읽어 SR-IOV가 사용하도록 설정되어 있는지 확인하고 NIC 스위치 구성 매개 변수를 가져와야 합니다.

    참고 PF 미니포트 드라이버가 MiniportSetOptions 함수에 진입점을 등록한 경우 NDIS가 MiniportSetOptions라고 할 때 드라이버가 이전에 레지스트리에서 이러한 매개 변수를 얻었을 수 있습니다.

  2. SR-IOV를 사용하는 경우 PF 미니포트 드라이버는 레지스트리의 NIC 스위치 매개 변수를 사용하여 네트워크 어댑터를 구성합니다. 드라이버는 네트워크 어댑터를 구성하기 전에 매개 변수가 유효한지 확인해야 합니다. 예를 들어 미니포트 드라이버는 NIC 스위치에 할당된 최대 PCIe VF(가상 함수) 수가 네트워크 어댑터에서 지원하는 VF 수를 초과하지 않는지 확인해야 합니다.

  3. 미니포트 드라이버는 NdisMEnableVirtualization 을 호출하여 SR-IOV를 사용하도록 설정하고 네트워크 어댑터에서 VF 수를 설정합니다. 이 함수는 어댑터의 PCI 구성 공간에서 SR-IOV 확장 기능을 구성합니다. 이 함수가 NDIS_STATUS_SUCCESS 반환하면 SR-IOV가 활성화되고 VF가 PCIe 인터페이스를 통해 노출됩니다.

참고 PF 미니포트 드라이버가 정적으로 NIC 스위치를 만드는 경우 NDIS가 OID_NIC_SWITCH_CREATE_SWITCH OID(개체 식별자) 메서드 요청을 실행할 때까지 스위치를 사용할 수 없습니다. PF 미니포트 드라이버가 정적으로 NIC 스위치를 만든 경우 스위치 매개 변수가 OID 요청에 지정되었는지 확인해야 합니다. OID 요청과 연결된 NDIS_NIC_SWITCH_PARAMETERS 구조에 포함된 이러한 매개 변수는 드라이버가 스위치를 만드는 데 사용한 매개 변수와 동일해야 합니다.

OID_NIC_SWITCH_CREATE_SWITCH 요청을 처리하는 방법에 대한 자세한 내용은 OID_NIC_SWITCH_CREATE_SWITCH 요청 처리를 참조하세요.

PF 미니포트 드라이버의 초기화 시퀀스 및 요구 사항에 대한 자세한 내용은 PF 미니포트 드라이버 초기화를 참조하세요.