Share via


OID_SRIOV_WRITE_VF_CONFIG_BLOCK

지나치게 많은 드라이버는 PCI Express(PCIe) VF(가상 함수) 구성 블록에 데이터를 쓰도록 OID_SRIOV_WRITE_VF_CONFIG_BLOCK OID(개체 식별자) 집합 요청을 실행합니다.

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

NDIS_OID_REQUEST 구조체의 InformationBuffer 멤버에는 호출자가 할당한 버퍼에 대한 포인터가 포함됩니다. 이 버퍼는 다음을 포함하도록 형식이 지정됩니다.

  • 이 구조체의 시작부터 VF 구성 블록에 기록된 데이터가 포함된 버퍼 내의 위치까지 오프셋(바이트 단위)을 포함하는 NDIS_SRIOV_WRITE_VF_CONFIG_BLOCK_PARAMETERS 구조체입니다.

  • 지정된 VF 구성 블록에 쓸 데이터의 추가 버퍼 공간입니다.

설명

VF 구성 블록은 PF와 VF 미니포트 드라이버 간의 백채널 통신에 사용됩니다. IHV는 미니포트 드라이버에 대해 하나 이상의 VF 구성 블록을 정의할 수 있습니다. 각 VF 구성 블록에는 IHV 정의 형식, 길이 및 블록 ID가 있습니다.

참고 각 VF 구성 블록의 데이터는 PF 및 VF 미니포트 드라이버에서만 사용됩니다.

OID_SRIOV_WRITE_VF_CONFIG_BLOCK OID 집합 요청을 실행하기 전에 오버리싱 드라이버는 다음과 같은 방식으로 NDIS_SRIOV_WRITE_VF_CONFIG_BLOCK_PARAMETERS 구조체의 멤버를 설정해야 합니다.

  • VFId 멤버를 정보를 쓸 VF의 식별자로 설정합니다.

  • BlockId 멤버를 정보를 쓸 구성 블록의 식별자로 설정합니다.

  • Length 멤버를 VF 구성 블록에 쓸 바이트 수로 설정합니다.

  • BufferOffset 멤버를 지정된 VF 구성 블록에서 작성할 데이터가 포함된 버퍼 내의 오프셋(InformationBuffer 멤버에서 참조)으로 설정합니다. 이 오프셋은 NDIS_SRIOV_WRITE_VF_CONFIG_BLOCK_PARAMETERS 구조체의 시작부터 바이트 단위로 지정됩니다.

OID_SRIOV_WRITE_VF_CONFIG_BLOCK OID 집합 요청을 처리하는 경우 PF 미니포트 드라이버는 다음 지침을 따라야 합니다.

  • PF 미니포트 드라이버는 NDIS_SRIOV_WRITE_VF_CONFIG_BLOCK_PARAMETERS 구조체의 VFId 멤버로 지정된 VF에 이전에 할당된 리소스가 있는지 확인해야 합니다. PF 미니포트 드라이버는 OID_NIC_SWITCH_ALLOCATE_VF OID 메서드 요청 중에 VF에 대한 리소스를 할당합니다. 지정된 VF에 대한 리소스가 할당되지 않은 경우 드라이버는 OID 요청에 실패해야 합니다.

  • PF 미니포트 드라이버는 NDIS_SRIOV_WRITE_VF_CONFIG_BLOCK_PARAMETERS 구조체의 BlockId 멤버가 유효한 VF 구성 블록을 지정하는지 확인해야 합니다. 그렇지 않은 경우 드라이버는 OID 요청에 실패해야 합니다.

단일 루트 I/O 가상화(SR-IOV) 인터페이스 내의 백채널 통신에 대한 자세한 내용은 SR-IOV PF/VF 백채널 통신을 참조하세요.

반환 상태 코드

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

상태 코드 Description

NDIS_STATUS_SUCCESS

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

NDIS_STATUS_NOT_SUPPORTED

미니포트 드라이버는 단일 루트 I/O 가상화(SR-IOV) 인터페이스를 지원하지 않거나 인터페이스를 사용할 수 없습니다.

NDIS_STATUS_INVALID_PARAMETER

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

NDIS_STATUS_INVALID_LENGTH

정보 버퍼가 너무 짧습니다. NDIS는 데이터를 설정합니다 . SET_INFORMATION. 필요한 최소 버퍼 크기에 대한 NDIS_OID_REQUEST 구조체의 BytesNeeded 멤버입니다.

NDIS_STATUS_FAILURE

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

요구 사항

Version

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

헤더

Ntddndis.h(Ndis.h 포함)

추가 정보


NDIS_OID_REQUEST

NDIS_SRIOV_WRITE_VF_CONFIG_BLOCK_PARAMETERS

OID_NIC_SWITCH_ALLOCATE_VF

OID_SRIOV_READ_VF_CONFIG_SPACE