GET_VIRTUAL_DEVICE_RESOURCES 콜백 함수(wdm.h)

GetResources 루틴은 단일 루트 I/O 가상화(SR-IOV) 인터페이스를 지원하는 디바이스에서 가상화를 사용하도록 설정하기 위해 PCI Express(PCIe) PF(물리적 함수)에 필요한 리소스를 반환합니다.

구문

GET_VIRTUAL_DEVICE_RESOURCES GetVirtualDeviceResources;

void GetVirtualDeviceResources(
  [in, out] PVOID Context,
  [out]     PUINT8 CapturedBusNumbers
)
{...}

매개 변수

[in, out] Context

인터페이스별 컨텍스트 정보에 대한 포인터입니다. 호출자는 인터페이스에 대한 PCI_VIRTUALIZATION_INTERFACE 구조체의 Context 멤버로 전달되는 값을 전달합니다.

[out] CapturedBusNumbers

이 루틴이 UINT8 값을 반환하는 호출자 제공 변수에 대한 포인터입니다. 이 값은 디바이스의 SR-IOV PF에서 사용하기 위해 캡처된 PCIe 버스 수를 지정합니다.

반환 값

없음

설명

PCIe 디바이스는 일반적으로 단일 PCI 버스에서 리소스를 사용합니다. PCI 드라이버는 업스트림 브리지 포트의 보조 버스 번호 레지스터 및 종속 버스 번호 레지스터에 버스 번호를 기록하여 PCI 버스에 디바이스를 할당합니다. 이 포트는 PCIe 루트 포트 또는 PCIe 스위치 포트 내의 PCI 간 브리지입니다.

SR-IOV 인터페이스를 지원하는 디바이스는 디바이스가 연결된 PCI 버스에 수용할 수 있는 것보다 더 많은 가상 함수를 만들 수 있습니다. 이러한 상황에서는 사용되지 않는 PCI 버스를 하나 이상 캡처하도록 업스트림 브리지 포트를 구성해야 합니다. 이 작업은 포트의 종속 버스 번호 레지스터에 더 큰 값을 작성하여 수행됩니다.

SR-IOV 인터페이스를 지원하는 디바이스는 다음 중 하나 이상이 해당하는 경우 PCI 버스를 캡처해야 합니다.

  • 디바이스에는 8개 이상의 총 함수(PF 및 VF)가 있으며 디바이스는 PCI Express 3.0 사양의 ARI(대체 라우팅 해석) 옵션을 지원하지 않습니다.

  • 디바이스는 ARI를 지원하며 총 8개 이상의 기능을 가지고 있지만 업스트림 브리지 포트는 ARI를 지원하지 않습니다.

  • 디바이스는 ARI를 지원하며 256개 이상의 기능을 가지고 있으며 업스트림 브리지 포트는 ARI를 지원합니다.

ARI 지원에 관계없이 캡처된 각 버스는 256개의 기능을 지원할 수 있습니다.

디바이스에 모든 VF를 사용하도록 설정하기 위해 더 많은 PCIe 요청자 ID(ID)가 필요한 경우 PCI 버스 드라이버는 다음을 수행합니다.

  1. 디바이스의 버스 번호를 PCIe 보조 버스 번호 레지스터에 씁니다.

  2. 디바이스의 버스 번호보다 큰 값을 PCIe 종속 버스 번호 레지스터에 씁니다.

이러한 두 레지스터 값 간의 차이는 캡처된 버스 번호의 수를 나타냅니다.

GetResources 루틴은 GUID_PCI_VIRTUALIZATION_INTERFACE 인터페이스에서 제공됩니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows Server 2012 이상 버전의 Windows에서 지원됩니다.
대상 플랫폼 데스크톱
머리글 wdm.h(Wdm.h 포함)
IRQL PASSIVE_LEVEL

추가 정보

PCI_VIRTUALIZATION_INTERFACE