NdisMGetVirtualFunctionLocation 함수(ndis.h)

미니포트 드라이버는 NdisMGetVirtualFunctionLocation 함수를 호출하여 PCI 버스에서 PCI Express(PCIe) VF(가상 함수)의 디바이스 위치를 쿼리합니다. 드라이버는 디바이스 위치를 사용하여 VF에 대한 PCIe 요청자 ID(RID)를 생성합니다.

참고NdisMGetVirtualFunctionLocation 은 네트워크 어댑터의 PCIe PF(물리적 함수)에 대한 미니포트 드라이버에서만 호출해야 합니다.
 

구문

void NdisMGetVirtualFunctionLocation(
  [in]  NDIS_HANDLE            NdisMiniportHandle,
  [in]  NDIS_SRIOV_FUNCTION_ID VFId,
  [out] PUSHORT                SegmentNumber,
  [out] PUCHAR                 BusNumber,
  [out] PUCHAR                 FunctionNumber
);

매개 변수

[in] NdisMiniportHandle

NDIS가 MiniportInitializeExMiniportAdapterHandle 매개 변수에 전달한 네트워크 어댑터 핸들입니다.

[in] VFId

디바이스 위치가 반환되는 VF의 식별자입니다.

[out] SegmentNumber

이 함수가 현재 PCI 세그먼트 번호에 대한 USHORT 값을 반환하는 호출자 제공 변수에 대한 포인터입니다. 이 값은 디바이스가 연결된 PCI 버스 그룹을 지정합니다.

[out] BusNumber

이 함수가 UCHAR 값을 반환하는 호출자 제공 변수에 대한 포인터입니다. 이 값은 디바이스가 연결된 현재 PCI 버스 번호를 지정합니다.

[out] FunctionNumber

이 함수가 UCHAR 값을 반환하는 호출자 제공 변수에 대한 포인터입니다. 이 값은 디바이스에서 논리 디바이스의 함수 번호를 지정합니다.

반환 값

없음

설명

OID_NIC_SWITCH_ALLOCATE_VF 메서드 요청을 처리하는 경우 PF 미니포트 드라이버는 드라이버가 네트워크 어댑터에 성공적으로 할당한 VF에 대한 RID를 반환해야 합니다. 드라이버는 다음과 같은 방법으로 RID를 생성합니다.

  1. 드라이버는 먼저 NdisMGetVirtualFunctionLocation 함수를 호출하여 VF에 대한 버스 관련 위치 정보를 가져옵니다.
  2. 그런 다음 드라이버는 버스 관련 위치 정보를 사용하여 NDIS_MAKE_RID 매크로를 호출하여 RID를 생성합니다.

VF 리소스를 할당하는 방법에 대한 자세한 내용은 가상 함수 초기화 시퀀스를 참조하세요.

SR-IOV 인터페이스에 대한 자세한 내용은 SR-IOV(단일 루트 I/O 가상화) 개요를 참조하세요.

Virtual Bus 드라이버에 연결

IHV(독립 하드웨어 공급업체)가 SR-IOV 드라이버 패키지의 일부로 VBD(가상 버스 드라이버)를 제공하는 경우 미니포트 드라이버는 NdisMGetVirtualFunctionLocation을 호출해서는 안 됩니다. 대신 드라이버는 프라이빗 통신 채널을 통해 VBD와 인터페이스하고 VBD가 GetLocation을 호출하도록 요청해야 합니다. 이 함수는 기본 PCI 버스 드라이버에서 지원하는 GUID_PCI_VIRTUALIZATION_INTERFACE 인터페이스에서 노출됩니다.

Hyper-V 부모 파티션의 관리 운영 체제에서 실행되는 VBD는 PCI 버스의 물리적 디바이스 개체(PDO)에 IRP_MN_QUERY_INTERFACE 요청을 실행하여 GUID_PCI_VIRTUALIZATION_INTERFACE인터페이스를 쿼리할 수 있습니다. 이 요청은 IRQL = PASSIVE_LEVEL 만들어야 합니다. 이 요청에서 드라이버는 InterfaceType 매개 변수를 GUID_PCI_VIRTUALIZATION_INTERFACE 설정해야 합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 NDIS 6.30 이상에서는 지원되지 않습니다.
지원되는 최소 서버 Windows Server 2012
대상 플랫폼 유니버설
헤더 ndis.h(Ndis.h 포함)
라이브러리 Ndis.lib
IRQL PASSIVE_LEVEL

추가 정보

GUID_PCI_VIRTUALIZATION_INTERFACE

GetLocation

NDIS_MAKE_RID

OID_NIC_SWITCH_ALLOCATE_VF