다음을 통해 공유


OID_NIC_SWITCH_CREATE_SWITCH 요청 처리

NDIS는 OID_NIC_SWITCH_CREATE_SWITCH OID(개체 식별자) 메서드 요청을 실행하여 다음을 수행합니다.

  • PCI Express(PCIe) PF(물리적 함수)용 미니포트 드라이버에서 정적으로 만든 네트워크 어댑터에서 NIC 스위치를 사용하도록 설정합니다. PF는 SR-IOV(단일 루트 I/O 가상화)를 지원하는 네트워크 어댑터의 하드웨어 구성 요소입니다.

    NIC 스위치는 컨텍스트 내에서 MiniportInitializeEx 호출까지 PF 미니포트 드라이버에 의해 정적으로 만들어집니다. 드라이버는 리소스를 할당하고 레지스트리 설정에서 읽은 매개 변수에 따라 스위치를 만듭니다.

  • 네트워크 어댑터에서 NIC 스위치를 동적으로 만듭니다.

    PF 미니포트 드라이버가 정적 NIC 스위치 생성을 지원하지 않는 경우 미니포트 드라이버는 리소스를 할당하고 OID 요청에 지정된 매개 변수에 따라 스위치를 만듭니다.

PF 미니포트 드라이버는 NDIS가 드라이버의 MiniportInitializeEx 함수를 호출할 때 SR-IOV 인터페이스의 지원을 보급합니다. PF 미니포트 드라이버가 SR-IOV를 지원하는 경우 NDIS는 레지스트리에서 NIC 스위치 구성을 읽습니다. NDIS가 PF 미니포트 드라이버에 OID_NIC_SWITCH_CREATE_SWITCH OID 메서드 요청을 발급하기 전에 NDIS는 다음과 같은 방법으로 레지스트리 정보를 사용하여 NDIS_NIC_SWITCH_PARAMETERS 구조체의 형식을 지정합니다.

  • NDIS는 SwitchType 멤버를 NIC 스위치의 형식으로 설정합니다.

    Windows Server 2012부터 Windows는 NdisNicSwitchTypeExternal스위치 유형만 지원합니다. 외부 스위치는 이 유형의 스위치에 연결된 VPort(가상 포트)가 네트워크 어댑터의 실제 포트를 통해 외부 네트워크에 액세스할 수 있도록 지정합니다.

    NIC 스위치에 대한 자세한 내용은 SR-IOV 아키텍처를 참조 하세요.

  • NDIS는 SwitchId 멤버를 NIC 스위치의 식별자 값으로 설정합니다. 스위치 식별자는 네트워크 어댑터가 지원하는 스위치 수와 0 사이의 정수입니다. NDIS_DEFAULT_SWITCH_ID 값은 기본 NIC 스위치를 나타냅니다.

    참고 Windows Server 2012부터 SR-IOV 인터페이스는 네트워크 어댑터의 기본 NIC 스위치만 지원합니다.

  • NDIS는 NIC 스위치에 할당할 수 있는 PCIe VF(가상 함수) 수를 지정하는 NumVFs 멤버를 설정합니다.

OID_NIC_SWITCH_CREATE_SWITCH OID 메서드 요청을 받으면 PF 미니포트 드라이버는 다음을 수행해야 합니다.

  1. PF 미니포트 드라이버가 정적 스위치 만들기 및 구성을 지원하는 경우 NDIS에서 MiniportInitializeEx를 호출할 때 NIC 스위치를 만듭니다. 드라이버가 이 OID 요청을 처리할 때 NDIS_NIC_SWITCH_PARAMETERS 구조의 구성 매개 변수를 확인해야 합니다. 매개 변수는 MiniportInitializeEx를 호출하는 동안 드라이버에서 스위치를 만드는 데 사용하는 매개 변수와 동일해야 합니다. 그렇지 않은 경우 드라이버는 OID 요청에 실패해야 합니다.

    자세한 내용은 NIC 스위치의 정적 생성을 참조 하세요.

  2. PF 미니포트 드라이버가 동적 스위치 만들기 및 구성을 지원하는 경우 드라이버는 NDIS_NIC_SWITCH_PARAMETERS 구조체의 구성 값의 유효성을 검사하고 이러한 값을 기반으로 NIC 스위치를 만들어야 합니다.

    자세한 내용은 NIC 스위치의 동적 만들기를 참조 하세요.

  3. PF 미니포트 드라이버는 NIC 스위치의 기본 VPort에 필요한 하드웨어 및 소프트웨어 리소스를 할당해야 합니다.

    기본 VPort는 항상 OID_NIC_SWITCH_CREATE_SWITCH OID 요청을 통해 만들어지고 OID_NIC_SWITCH_DELETE_SWITCH OID 요청을 통해 삭제됩니다. OID_NIC_SWITCH_CREATE_VPORT 및 OID_NIC_SWITCH_DELETE_VPORT OID 요청은 NIC 스위치에서 기본이 아닌 VPort를 만들고 삭제하는 데 사용됩니다.

  4. 동적 스위치 만들기 및 구성을 지원하는 PF 미니포트 드라이버는 NdisMEnableVirtualization을 호출 하여 스위치에서 SR-IOV 가상화를 사용하도록 설정해야 합니다. 이 호출은 어댑터의 PCI Express(PCIe) 구성 공간의 SR-IOV 확장 기능 구조에서 NumVFs 멤버 및 VF Enable 비트를 구성합니다.

    SR-IOV 구성 공간에 대한 자세한 내용은 PCI-SIG 단일 루트 I/O 가상화 및 공유 1.1 사양을 참조하세요.

    참고 PF 미니포트 드라이버는 정적 스위치 생성을 지원하는 경우 MiniportInitializeEx가 호출되면 스위치를 만든 후 SR-IOV 가상화를 사용하도록 설정합니다.

PF 미니포트 드라이버가 OID_NIC_SWITCH_CREATE_SWITCH OID 메서드 요청을 성공적으로 완료하면 다음이 발생할 수 있습니다.