OID_NIC_SWITCH_CREATE_VPORT
오버리싱 드라이버는 네트워크 어댑터의 NIC 스위치에 기본이 아닌 VPort(가상 포트)를 만들기 위해 OID_NIC_SWITCH_CREATE_VPORT OID(개체 식별자) 메서드 요청을 실행합니다. 또한 이 OID 메서드 요청은 생성된 VPort를 네트워크 어댑터의 PCI Express(PCIe) PF(물리적 함수) 또는 이전에 할당된 PCIe VF(가상 함수)에 연결합니다.
오버리싱 드라이버는 네트워크 어댑터의 PF에 대한 미니포트 드라이버에 이 OID 메서드 요청을 실행합니다. 이 OID 메서드 요청은 단일 루트 I/O 가상화(SR-IOV) 인터페이스를 지원하는 PF 미니포트 드라이버에 필요합니다.
NDIS_OID_REQUEST 구조체의 InformationBuffer 멤버는 NDIS_NIC_SWITCH_VPORT_PARAMETERS 구조체에 대한 포인터를 포함합니다.
설명
오버리싱 드라이버는 만들려는 기본이 아닌 VPort에 대한 구성 정보를 사용하여 NDIS_NIC_SWITCH_VPORT_PARAMETERS 구조를 초기화합니다. 구성 정보에는 기본이 아닌 VPort가 연결된 PCIe 함수와 기본이 아닌 VPort에 대한 큐 쌍 수가 포함됩니다.
PF 미니포트 드라이버가 OID 요청을 실행하면 드라이버는 지정된 기본이 아닌 VPort와 연결된 하드웨어 및 소프트웨어 리소스를 할당합니다. 모든 리소스가 성공적으로 할당되면 PF 미니포트 드라이버는 MiniportOidRequest에서 NDIS_STATUS_SUCCESS 반환하여 OID를 성공적으로 완료합니다.
OID_NIC_SWITCH_CREATE_VPORT 요청이 성공적으로 완료되면 PF 미니포트 드라이버와 오버리싱 드라이버는 연속 작업을 위해 기본이 아닌 VPort의 VPortId 값을 유지해야 합니다. VPortId 값은 다음 작업 중에 사용됩니다.
NDIS 및 오버리싱 드라이버는 VPortId 값을 사용하여 이 VPort와 관련된 연속 OID 요청(예: OID_NIC_SWITCH_VPORT_PARAMETERS 및 OID_NIC_SWITCH_DELETE_VPORT)에서 기본이 아닌 VPort를 식별합니다.
보내기 작업 중에 NDIS는 패킷이 전송된 VPort를 식별하는 VPortId 값을 지정합니다. 이 값은 NET_BUFFER_LIST 구조체의 OOB(out-of-band) NDIS_NET_BUFFER_LIST_FILTERING_INFO 데이터 내에 지정됩니다.
수신 작업 중에 PF 미니포트 드라이버는 패킷을 전달할 VPortId 값을 지정합니다. 이 값은 NET_BUFFER_LIST 구조체의 OOB NDIS_NET_BUFFER_LIST_FILTERING_INFO 데이터에도 지정됩니다.
자세한 내용은 가상 포트 만들기를 참조하세요.
참고 기본 VPort는 항상 존재하며 OID_NIC_SWITCH_CREATE_VPORT OID 요청을 통해 만들어지지 않습니다. 기본 VPort에는 NDIS_DEFAULT_VPORT_ID 식별자가 있습니다. PF 미니포트 드라이버가 NIC 스위치를 만들 때 드라이버는 네트워크 어댑터의 PF에 기본 VPort를 자동으로 연결합니다.
반환 상태 코드
NDIS 또는 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_VPORT_PARAMETERS 구조체의 멤버 중 하나 이상에 잘못된 값이 있습니다. |
NDIS_STATUS_INVALID_LENGTH |
정보 버퍼의 길이가 sizeof(NDIS_NIC_SWITCH_VPORT_PARAMETERS)보다 작습니다. PF 미니포트 드라이버는 데이터를 설정해야 합니다 . METHOD_INFORMATION. 필요한 최소 버퍼 크기에 대한 NDIS_OID_REQUEST 구조체의 BytesNeeded 멤버입니다. |
NDIS_STATUS_FAILURE |
다른 이유로 인해 요청이 실패했습니다. |
요구 사항
Version |
NDIS 6.30 이상에서 지원됩니다. |
헤더 |
Ntddndis.h(Ndis.h 포함) |