OID_SRIOV_BAR_RESOURCES
NDIS는 OID_SRIOV_BAR_RESOURCES OID(개체 식별자) 메서드 요청을 실행하여 PCIe VF(가상 함수)의 PCI Express(PCIe) BAR(기본 주소 등록)에 할당된 메모리 리소스를 확인합니다.
NDIS는 네트워크 어댑터의 PCIe PF(물리적 함수)에 대한 미니포트 드라이버에 이 OID 메서드 요청을 실행합니다. 이 OID 메서드 요청은 단일 루트 I/O 가상화(SR-IOV) 인터페이스를 지원하는 PF 미니포트 드라이버에 필요합니다.
NDIS_OID_REQUEST 구조체의 InformationBuffer 멤버는 버퍼에 대한 포인터를 포함합니다. 이 버퍼에는 다음 구조가 포함됩니다.
PF 미니포트 드라이버가 리소스 정보를 반환하는 VF 및 BAR를 지정하는 NDIS_SRIOV_BAR_RESOURCES_INFO 구조체입니다.
NDIS_SRIOV_BAR_RESOURCES_INFO 구조를 따르는 CM_PARTIAL_RESOURCE_DESCRIPTOR 구조체입니다. CM_PARTIAL_RESOURCE_DESCRIPTOR 구조에는 지정된 BAR에 할당된 메모리 리소스에 대한 정보가 포함됩니다.
설명
NDIS는 VF BAR에 할당된 메모리 리소스의 시스템 실제 주소와 길이를 얻기 위해 OID_SRIOV_BAR_RESOURCES OID 메서드 요청을 발급합니다. OID 메서드 요청을 실행하기 전에 NDIS는 다음과 같은 방식으로 NDIS_SRIOV_BAR_RESOURCES_INFO 구조체의 형식을 지정합니다.
NDIS는 NDIS_SRIOV_BAR_RESOURCES_INFO 구조체의 VFId 멤버를 VF와 연결된 식별자로 설정합니다.
NDIS는 NDIS_SRIOV_BAR_RESOURCES_INFO 구조체의 BarIndex 멤버를 지정된 VF의 BAR 인덱스로 설정합니다. BAR 인덱스는 PCI 구성 공간의 BAR 테이블 내에 있는 레지스터의 오프셋입니다.
NDIS는 NDIS_SRIOV_BAR_RESOURCES_INFO 구조체의 BarResourcesOffset 멤버를 NDIS_SRIOV_BAR_RESOURCES_INFO 구조체의 시작부터 CM_PARTIAL_RESOURCE_DESCRIPTOR구조체 까지 오프셋(바이트 단위)으로 설정합니다.
참고 프로토콜 또는 필터 드라이버와 같은 오버리싱 드라이버는 PF 미니포트 드라이버에 OID_SRIOV_BAR_RESOURCES OID 메서드 요청을 실행할 수 없습니다.
PF 미니포트 드라이버가 OID 메서드 요청을 받으면 드라이버는 NDIS_OID_REQUEST 구조체의 InformationBuffer 멤버 내에서 CM_PARTIAL_RESOURCE_DESCRIPTOR 구조체의 형식을 지정하여 지정된 BAR에 대한 리소스를 반환합니다. 드라이버는 지정된 VF에 대한 BAR와 연결된 시스템 하드웨어 리소스를 사용하여 CM_PARTIAL_RESOURCE_DESCRIPTOR 구조체의 형식을 지정합니다.
참고 드라이버는 CmResourceTypeMemory의 리소스 종류에 대한 구조체의 형식을 지정해야 합니다.
반환 상태 코드
PF 미니포트 드라이버는 OID_SRIOV_BAR_RESOURCES 메서드 요청에 대해 다음 상태 코드 중 하나를 반환합니다.
상태 코드 | Description |
---|---|
NDIS_STATUS_SUCCESS |
OID 요청이 성공적으로 완료되었습니다. |
NDIS_STATUS_NOT_SUPPORTED |
PF 미니포트 드라이버는 단일 루트 I/O 가상화(SR-IOV) 인터페이스를 지원하지 않거나 인터페이스를 사용할 수 없습니다. |
NDIS_STATUS_INVALID_PARAMETER |
NDIS_SRIOV_BAR_RESOURCES_INFO 구조체의 멤버 중 하나 이상에 잘못된 값이 있습니다. |
NDIS_STATUS_INVALID_LENGTH |
정보 버퍼가 (sizeof(NDIS_SRIOV_BAR_RESOURCES_INFO) + sizeof(CM_PARTIAL_RESOURCE_DESCRIPTOR)보다 작습니다. PF 미니포트 드라이버는 데이터를 설정해야 합니다 . METHOD_INFORMATION. 필요한 최소 버퍼 크기에 대한 NDIS_OID_REQUEST 구조체의 BytesNeeded 멤버입니다. |
NDIS_STATUS_FAILURE |
다른 이유로 인해 요청이 실패했습니다. |
요구 사항
Version |
NDIS 6.30 이상에서 지원됩니다. |
헤더 |
Ntddndis.h(Ndis.h 포함) |