PF 미니포트 드라이버에 대한 MiniportInitializeEx 지침
이 항목에서는 PCI Express(PCIe) PF(물리적 함수)의 미니포트 드라이버에 대한 MiniportInitializeEx 함수를 작성하는 지침을 설명합니다. PF는 SR-IOV(단일 루트 I/O 가상화)를 지원하는 네트워크 어댑터의 구성 요소입니다.
참고 이러한 지침은 PF 미니포트 드라이버에만 적용합니다. 어댑터의 PCIe VF(가상 함수)의 미니포트 드라이버에 대한 초기화 지침은 VF 미니포트 드라이버 초기화를 참조하세요.
PF 미니포트 드라이버는 MiniportInitializeEx 함수일 때 NDIS 미니포트 드라이버와 동일한 단계를 따릅니다. 이러한 단계에 대한 자세한 내용은 Miniport 드라이버 초기화를 참조하세요.
이러한 단계 외에도 PF 미니포트 드라이버는 NDIS가 드라이버의 MiniportInitializeEx 함수를 호출할 때 다음 추가 단계를 따라야 합니다.
PF 미니포트 드라이버는 NdisGetHypervisorInfo 함수를 호출하여 Hyper-V 부모 파티션에서 실행 중인지 확인합니다. 이 함수는 파티션 형식을 정의하는 NDIS_HYPERVISOR_INFO 구조를 반환합니다. 파티션 유형이 NdisHypervisorPartitionMsHvParent로 보고된 경우 미니포트 드라이버는 어댑터의 PF에 연결된 Hyper-V 부모 파티션에서 실행됩니다.
참고 파티션 유형이 NdisHypervisorPartitionMsHvChild로 보고된 경우 미니포트 드라이버는 어댑터의 VF에 연결된 Hyper-V 자식 파티션에서 실행됩니다. 이 경우 미니포트 드라이버는 PF 드라이버로 초기화하지 않아야 합니다. 가능하면 드라이버는 VF 미니포트 드라이버 초기화에 설명된 대로 VF 드라이버로 초기화해야 합니다.
PF 미니포트 드라이버는 SR-IOV 표준화된 키워드를 읽고 SR-IOV가 사용하도록 설정되어 있는지 확인하고 NIC 스위치 구성 설정을 가져와야 합니다. 이러한 키워드에 대한 자세한 내용은 SR-IOV용 표준화된 INF 키워드를 참조하세요.
참고 PF 미니포트 드라이버가 MiniportSetOptions 함수에 진입점을 등록한 경우 NDIS가 MiniportSetOptions라고 할 때 드라이버가 이전에 레지스트리에서 이러한 설정을 얻었을 수 있습니다.
네트워크 어댑터가 SR-IOV, VMQ(가상 머신 큐) 또는 RSS를 지원하는 경우 미니포트 드라이버는 네트워크 어댑터에서 사용하도록 설정할 기능을 결정해야 합니다. 이를 확인하는 방법에 대한 자세한 내용은 SR-IOV, VMQ 및 RSS 표준화된 INF 키워드 처리를 참조하세요.
미니포트 드라이버는 RSS 및 VMQ 하드웨어 기능(지원되는 경우)과 함께 전체 하드웨어 SR-IOV 기능 집합을 보고해야 합니다. 이러한 기능은 레지스트리의 SR-IOV 표준화된 키워드(keyword) 설정에 관계없이 보급되어야 합니다.
네트워크 어댑터에서 SR-IOV를 사용하도록 설정한 경우 미니포트 드라이버는 어댑터에서 현재 사용 가능한 SR-IOV 설정도 보고해야 합니다.
SR-IOV 기능을 보고하는 방법에 대한 자세한 내용은 SR-IOV 기능 판단을 참조하세요.
미니포트 드라이버는 하드웨어 NIC 스위치 기능의 전체 집합을 보고해야 합니다. 이러한 기능은 레지스트리의 SR-IOV 표준화된 키워드(keyword) 설정에 관계없이 보급되어야 합니다.
네트워크 어댑터에서 SR-IOV를 사용하도록 설정한 경우 미니포트 드라이버는 어댑터에서 현재 사용 가능한 NIC 스위치 설정도 보고해야 합니다.
NIC 스위치 기능을 보고하는 방법에 대한 자세한 내용은 NIC 스위치 기능 판단을 참조하세요.
미니포트 드라이버는 전체 하드웨어 수신 필터링 기능을 보고해야 합니다. 이러한 기능은 레지스트리의 SR-IOV 표준화된 키워드(keyword) 설정에 관계없이 보급되어야 합니다.
네트워크 어댑터에서 SR-IOV를 사용하도록 설정한 경우 미니포트 드라이버는 어댑터에서 현재 사용 가능한 수신 필터링 설정도 보고해야 합니다.
수신 필터링 기능을 보고하는 방법에 대한 자세한 내용은 수신 필터링 기능 확인 을 참조하세요.
미니포트 드라이버가 정적 NIC 스위치 만들기를 지원하는 경우 MiniportInitializeEx 호출의 컨텍스트에서 다음을 수행해야 합니다.
드라이버는 표준화된 NIC 스위치 키워드(keyword) 설정에 따라 어댑터 하드웨어를 구성합니다. 이러한 설정에 따라 드라이버는 NIC 스위치에 필요한 하드웨어 및 소프트웨어 리소스를 할당합니다.
미니포트 드라이버는 NdisMEnableVirtualization 을 호출하여 SR-IOV를 사용하도록 설정하고 네트워크 어댑터의 VF 수를 설정합니다. 이 함수는 어댑터의 PCI 구성 공간에서 SR-IOV 확장 기능을 구성합니다. 이 함수가 NDIS_STATUS_SUCCESS 반환하면 SR-IOV가 활성화되고 VF가 PCIe 인터페이스를 통해 노출됩니다.
자세한 내용은 NIC 스위치의 정적 만들기를 참조하세요.
참고 미니포트 드라이버가 동적 NIC 스위치 만들기를 지원하는 경우 스위치를 만들고 OID_NIC_SWITCH_CREATE_SWITCH OID(개체 식별자) 메서드 요청을 처리할 때 가상화를 사용하도록 설정합니다. 자세한 내용은 NIC 스위치의 동적 만들기를 참조하세요.