Share via


NdisMEnableVirtualization 함수(ndis.h)

미니포트 드라이버는 네트워크 어댑터에서 NIC 스위치를 만들거나 삭제하는 동안 NdisMEnableVirtualization 함수를 호출합니다. 이 함수를 호출하면 드라이버는 네트워크 어댑터의 PF(물리적 함수)에 대한 PCI Express(PCIe) 구성 공간에서 SR-IOV(단일 루트 I/O 가상화) 확장 기능 구조를 구성합니다.

참고NdisMEnableVirtualization 은 네트워크 어댑터의 PF에 대한 미니포트 드라이버에서만 호출해야 합니다.
 

구문

NDIS_STATUS NdisMEnableVirtualization(
  [in] NDIS_HANDLE NdisMiniportHandle,
  [in] USHORT      NumVFs,
  [in] BOOLEAN     EnableVFMigration,
  [in] BOOLEAN     EnableMigrationInterrupt,
  [in] BOOLEAN     EnableVirtualization
);

매개 변수

[in] NdisMiniportHandle

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

[in] NumVFs

네트워크 어댑터에 사용하도록 설정할 VF(가상 함수) 수를 포함하는 USHORT 값입니다. NdisMEnableVirtualization 은 SR-IOV 확장 기능 구조의 NumVFs 멤버를 NumVFs 매개 변수 값으로 설정합니다.

참고EnableVirtualization 매개 변수가 FALSE이면 NumVF를 0으로 설정해야 합니다.
 

[in] EnableVFMigration

이 매개 변수는 NDIS용으로 예약되어 있으며 FALSE로 설정해야 합니다.

[in] EnableMigrationInterrupt

이 매개 변수는 NDIS용으로 예약되어 있으며 FALSE로 설정해야 합니다.

[in] EnableVirtualization

네트워크 어댑터의 PCI 구성 공간에서 가상화를 사용하도록 설정할지 여부를 지정하는 BOOLEAN 값입니다. EnableVirtualization이 TRUE이면 NdisMEnableVirtualization은 SR-IOV 컨트롤 멤버의 VF Enable 비트를 설정합니다. EnableVirtualization이 FALSE인 경우 NdisMEnableVirtualization은 이 비트를 지웁니다.

반환 값

NdisMEnableVirtualization은 다음 상태 값 중 하나를 반환할 수 있습니다.

반환 코드 설명
NDIS_STATUS_SUCCESS
가상화 작업이 성공적으로 완료되었습니다.
NDIS_STATUS_NOT_SUPPORTED
어댑터 또는 시스템은 SR-IOV를 지원하지 않습니다.
NDIS_STATUS_INVALID_PARAMETER
EnableVirtualization 매개 변수는 FALSE로 설정되고 NumVFs 매개 변수는 0이 아닌 값으로 설정됩니다.
NDIS_STATUS_FAILURE
가상화 작업이 실패했습니다.
참고 가상화를 이미 사용하도록 설정한 경우 가상화를 사용하도록 설정하기 위해 NdisMEnableVirtualization 함수가 호출되면 실패합니다. 드라이버가 가상화를 다시 활성화하려면 먼저 EnableVirtualization 매개 변수가 FALSE로 설정된 함수를 호출하여 가상화를 사용하지 않도록 설정해야 합니다.
 

설명

PF 미니포트 드라이버는 NdisMEnableVirtualization 을 호출하여 PCI 구성 공간에서 SR-IOV 확장 기능 필드를 구성합니다. 이 호출은 구성 공간에서 가상화를 사용하거나 사용하지 않도록 설정하고 네트워크 어댑터에서 PCIe 패브릭에 노출해야 하는 VF 수를 지정하는 데 사용됩니다.

PF 미니포트 드라이버가 OID_NIC_SWITCH_CREATE_SWITCH OID 메서드 요청을 처리하는 경우 드라이버는 NdisMEnableVirtualization 을 호출하여 NIC 스위치에 대한 네트워크 어댑터에서 가상화를 사용하도록 설정합니다. 드라이버는 다음 매개 변수 설정을 사용하여 NdisMEnableVirtualization 을 호출하여 이 작업을 수행합니다.

용어 Description
NumVFs NIC 스위치에 사용할 VF 수로 설정합니다.
EnableVirtualization TRUE로 설정합니다.
 

PF 미니포트 드라이버가 OID_NIC_SWITCH_DELETE_SWITCH OID 메서드 요청을 처리하면 드라이버는 NdisMEnableVirtualization을 호출하여 네트워크 어댑터에서 가상화를 사용하지 않도록 설정합니다. 드라이버는 다음 매개 변수 설정을 사용하여 NdisMEnableVirtualization 을 호출하여 이 작업을 수행합니다.

용어 Description
NumVFs 0으로 설정됩니다.
EnableVirtualization FALSE로 설정합니다.
 

NIC 스위치를 만드는 방법에 대한 자세한 내용은 NIC 스위치 만들기를 참조하세요.

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

Virtual Bus 드라이버에 연결

IHV(독립 하드웨어 공급업체)가 SR-IOV 드라이버 패키지의 일부로 VBD(가상 버스 드라이버)를 제공하는 경우 미니포트 드라이버는 NdisMEnableVirtualization을 호출해서는 안 됩니다. 대신 드라이버는 프라이빗 통신 채널을 통해 VBD와 인터페이스하고 VBD가 EnableVirtualization을 호출하도록 요청해야 합니다. 이 함수는 기본 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 이상에서 지원됩니다.
대상 플랫폼 유니버설
헤더 ndis.h(Ndis.h 포함)
라이브러리 Ndis.lib
IRQL PASSIVE_LEVEL

추가 정보

EnableVirtualization

GUID_PCI_VIRTUALIZATION_INTERFACE

OID_NIC_SWITCH_CREATE_SWITCH

OID_NIC_SWITCH_DELETE_SWITCH