OID_SRIOV_READ_VF_CONFIG_BLOCK
오버리싱 드라이버는 지정된 PCI Express(PCIe) VF(가상 함수) 구성 블록에서 데이터를 읽기 위해 OID_SRIOV_READ_VF_CONFIG_BLOCK OID(개체 식별자) 메서드 요청을 실행합니다.
오버리싱 드라이버는 네트워크 어댑터의 PCIe PF(물리적 함수)에 대한 미니포트 드라이버에 이 OID 메서드 요청을 실행합니다. 이 OID 메서드 요청은 단일 루트 I/O 가상화(SR-IOV) 인터페이스를 지원하는 PF 미니포트 드라이버에 필요합니다.
NDIS_OID_REQUEST 구조체의 InformationBuffer 멤버는 호출자가 할당한 버퍼에 대한 포인터를 포함합니다. 이 버퍼는 다음을 포함하도록 형식이 지정됩니다.
이 구조체의 시작부터 VF 구성 블록에서 읽은 데이터가 포함된 버퍼 내의 위치까지 오프셋을 바이트 단위로 포함하는 NDIS_SRIOV_READ_VF_CONFIG_BLOCK_PARAMETERS 구조체입니다.
지정된 VF 구성 블록에서 데이터를 읽을 수 있는 추가 버퍼 공간입니다.
설명
VF 구성 블록은 PF와 VF 미니포트 드라이버 간의 백채널 통신에 사용됩니다. IHV는 미니포트 드라이버에 대해 하나 이상의 VF 구성 블록을 정의할 수 있습니다. 각 VF 구성 블록에는 IHV 정의 형식, 길이 및 블록 ID가 있습니다.
참고 각 VF 구성 블록의 데이터는 PF 및 VF 미니포트 드라이버에서만 사용됩니다.
OID_SRIOV_READ_VF_CONFIG_BLOCK OID 메서드 요청을 실행하기 전에 오버리싱 드라이버는 다음과 같은 방식으로 NDIS_SRIOV_READ_VF_CONFIG_BLOCK_PARAMETERS 구조체의 멤버를 설정해야 합니다.
VFId 멤버를 정보를 읽을 VF의 식별자로 설정합니다.
BlockId 멤버를 정보를 읽을 VF 구성 블록의 식별자로 설정합니다.
Length 멤버를 구성 블록에서 읽을 바이트 수로 설정합니다.
BufferOffset 멤버를 지정된 VF 구성 블록에서 읽은 데이터를 포함하는 버퍼 내의 오프셋(InformationBuffer 멤버에서 참조)으로 설정합니다. 이 오프셋은 NDIS_SRIOV_READ_VF_CONFIG_BLOCK_PARAMETERS 구조체의 시작부터 바이트 단위로 지정됩니다.
OID_SRIOV_READ_VF_CONFIG_BLOCK OID 메서드 요청을 처리하는 경우 PF 미니포트 드라이버는 다음 지침을 따라야 합니다.
PF 미니포트 드라이버는 NDIS_SRIOV_READ_VF_CONFIG_BLOCK_PARAMETERS 구조체의 VFId 멤버가 지정한 VF에 이전에 할당된 리소스가 있는지 확인해야 합니다. PF 미니포트 드라이버는 OID_NIC_SWITCH_ALLOCATE_VF OID 메서드 요청 중에 VF에 대한 리소스를 할당합니다. 지정된 VF에 대한 리소스가 할당되지 않은 경우 드라이버는 OID 요청에 실패해야 합니다.
PF 미니포트 드라이버는 NDIS_SRIOV_READ_VF_CONFIG_BLOCK_PARAMETERS 구조체의 BlockId 멤버가 유효한 VF 구성 블록을 지정하는지 확인해야 합니다. 그렇지 않은 경우 드라이버는 OID 요청에 실패해야 합니다.
단일 루트 I/O 가상화(SR-IOV) 인터페이스 내의 백채널 통신에 대한 자세한 내용은 SR-IOV PF/VF 백채널 통신을 참조하세요.
반환 상태 코드
PF 미니포트 드라이버는 OID_SRIOV_READ_VF_CONFIG_BLOCK 메서드 요청에 대해 다음 상태 코드 중 하나를 반환합니다.
상태 코드 | Description |
---|---|
NDIS_STATUS_SUCCESS |
OID 요청이 성공적으로 완료되었습니다. |
NDIS_STATUS_NOT_SUPPORTED |
미니포트 드라이버는 단일 루트 I/O 가상화(SR-IOV) 인터페이스를 지원하지 않거나 인터페이스를 사용할 수 없습니다. |
NDIS_STATUS_INVALID_PARAMETER |
NDIS_SRIOV_READ_VF_CONFIG_BLOCK_PARAMETERS 구조체의 멤버 중 하나 이상에 잘못된 값이 있습니다. |
NDIS_STATUS_INVALID_LENGTH |
정보 버퍼가 너무 짧습니다. 미니포트 드라이버는 DATA를 설정해야 합니다 . METHOD_INFORMATION. 필요한 최소 버퍼 크기에 대한 NDIS_OID_REQUEST 구조체의 BytesNeeded 멤버입니다. |
NDIS_STATUS_FAILURE |
다른 이유로 인해 요청이 실패했습니다. |
요구 사항
Version |
NDIS 6.30 이상에서 지원됩니다. |
헤더 |
Ntddndis.h(Ndis.h 포함) |