OID_NIC_SWITCH_CREATE_SWITCH

NDIS는 네트워크 어댑터에 NIC 스위치를 만들기 위해 OID_NIC_SWITCH_CREATE_SWITCH OID(개체 식별자) 메서드 요청을 실행합니다. 이 OID 요청을 처리할 때 미니포트 드라이버는 어댑터의 NIC 스위치에 대한 리소스를 할당합니다.

NDIS는 네트워크 어댑터의 PCI Express(PCIe) PF(물리적 함수)의 미니포트 드라이버에 이 OID 메서드 요청을 발급합니다. 이 OID 메서드 요청은 단일 루트 I/O 가상화(SR-IOV) 인터페이스를 지원하는 PF 미니포트 드라이버에 필요합니다.

참고 프로토콜 또는 필터 드라이버와 같은 지나치게 많은 드라이버는 PF 미니포트 드라이버에 OID_NIC_SWITCH_CREATE_SWITCH OID 메서드 요청을 실행할 수 없습니다.

NDIS_OID_REQUEST 구조체의 InformationBuffer 멤버는 NDIS_NIC_SWITCH_PARAMETERS 구조체에 대한 포인터를 포함합니다.

설명

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_VPORTOID_NIC_SWITCH_DELETE_VPORT OID 요청은 NIC 스위치에서 기본이 아닌 VPort를 만들고 삭제하는 데 사용됩니다.

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

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

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

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

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

반환 상태 코드

PF 미니포트 드라이버는 OID_NIC_SWITCH_CREATE_SWITCH OID 메서드 요청에 대해 다음 상태 코드 중 하나를 반환합니다.

상태 코드 Description

NDIS_STATUS_SUCCESS

OID 요청이 성공적으로 완료되었습니다.

NDIS_STATUS_NOT_SUPPORTED

PF 미니포트 드라이버는 SR-IOV 인터페이스를 지원하지 않거나 인터페이스를 사용할 수 없습니다.

NDIS_STATUS_INVALID_PARAMETER

NDIS_NIC_SWITCH_PARAMETERS 구조체의 멤버 중 하나 이상에 잘못된 값이 있습니다.

NDIS_STATUS_INVALID_LENGTH

정보 버퍼의 길이가 sizeof(NDIS_NIC_SWITCH_PARAMETERS)보다 작습니다. PF 미니포트 드라이버는 데이터를 설정해야 합니다 . METHOD_INFORMATION. 필요한 최소 버퍼 크기에 대한 NDIS_OID_REQUEST 구조체의 BytesNeeded 멤버입니다.

NDIS_STATUS_FAILURE

다른 이유로 인해 요청이 실패했습니다.

요구 사항

Version

NDIS 6.30 이상에서 지원됩니다.

헤더

Ntddndis.h(Ndis.h 포함)

추가 정보


MiniportInitializeEx

NDIS_OID_REQUEST

NDIS_NIC_SWITCH_PARAMETERS

NdisMEnableVirtualization

OID_NIC_SWITCH_ALLOCATE_VF

OID_NIC_SWITCH_CREATE_VPORT