共用方式為


NdisMEnableVirtualization 函式 (ndis.h)

迷你埠驅動程式會在網路適配器上建立或刪除 NIC 交換器期間呼叫 NdisMEnableVirtualization 函式。 藉由呼叫此函式,驅動程式會在網路適配器實體函式 (PF) 的PCI Express (PC) Ie 中設定單一根 I/O 虛擬化 (SR-IOV) 擴充功能結構。

注意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

USHORT 值,其中包含要針對網路適配器啟用的虛擬函式 (VFs 數目) 。 NdisMEnableVirtualization 會將 SR-IOV 擴充功能結構的 NumVFs 成員設定為 NumVFs 參數的值。

注意 如果 EnableVirtualization 參數為 FALSE, 則 NumVFs 必須設定為零。
 

[in] EnableVFMigration

此參數保留給 NDIS,且必須設定為 FALSE。

[in] EnableMigrationInterrupt

此參數保留給 NDIS,且必須設定為 FALSE。

[in] EnableVirtualization

BOOLEAN 值,指定是否應該在網路適配器的PCI組態空間中啟用虛擬化。 如果 EnableVirtualizationTRUE,NdisMEnableVirtualization 會設定 SR-IOV 控件成員的 VF Enable 位。 如果 EnableVirtualization 為 FALSE,NdisMEnableVirtualization 會清除此位。

傳回值

NdisMEnableVirtualization 可以傳回下列其中一個狀態值。

傳回碼 Description
NDIS_STATUS_SUCCESS
虛擬化作業已順利完成。
NDIS_STATUS_NOT_SUPPORTED
配接器或系統不支援 SR-IOV。
NDIS_STATUS_INVALID_PARAMETER
EnableVirtualization 參數會設定為 FALSE,而 NumVFs 參數會設定為非零值。
NDIS_STATUS_FAILURE
虛擬化作業失敗。
注意 如果呼叫 NdisMEnableVirtualization 函式以在虛擬化已啟用時啟用虛擬化,就會失敗。 驅動程式必須先停用虛擬化 (,方法是呼叫 EnableVirtualization 參數設定為 FALSE) 的函式,才能讓驅動程式重新啟用虛擬化。
 

備註

PF 迷你埠驅動程式會呼叫 NdisMEnableVirtualization ,在 PCI 設定空間中設定 SR-IOV 擴充功能欄位。 此呼叫可用來在組態空間中啟用或停用虛擬化,並指定應該由網路適配器公開給PCIe網狀架構的 VF 數目。

當 PF 迷你埠驅動程式處理 OID_NIC_SWITCH_CREATE_SWITCH的 OID 方法要求時,驅動程式會呼叫 NdisMEnableVirtualization ,以在 NIC 交換器的網路適配器上啟用虛擬化。 驅動程式會使用下列參數設定呼叫 NdisMEnableVirtualization 來執行此動作。

詞彙 描述
NumVFs 設定為要針對 NIC 參數啟用的 VF 數目。
EnableVirtualization 設定為TRUE。
 

當 PF 迷你埠驅動程式處理 OID_NIC_SWITCH_DELETE_SWITCH的 OID 方法要求時,驅動程式會呼叫 NdisMEnableVirtualization 來停用網路適配器上的虛擬化。 驅動程式會使用下列參數設定呼叫 NdisMEnableVirtualization 來執行此動作:

詞彙 描述
NumVFs 設定為零。
EnableVirtualization 設定為 FALSE。
 

如需如何建立 NIC 參數的詳細資訊,請參閱 建立 NIC 交換器

如需 SR-IOV 介面的詳細資訊,請參閱 單一根目錄 I/O 虛擬化概觀 (SR-IOV)

與虛擬總線驅動程序互動

如果獨立硬體廠商 (IHV) 提供虛擬總線驅動程式 (VBD) 作為 SR-IOV 驅動程式套件的一部分,則其迷你埠驅動程式不得呼叫 NdisMEnableVirtualization。 相反地,驅動程式必須透過私人通道與 VBD 介面,並要求 VBD 呼叫 EnableVirtualization。 此函式是由基礎 PCI 總線驅動程式支援的 GUID_PCI_VIRTUALIZATION_INTERFACE 介面所提供。

在 Hyper-V 父數據分割的管理作業系統中執行的 VBD,可以藉由對 PCI 總線上的 PDO) 發出IRP_MN_QUERY_INTERFACE要求,向其實體裝置 (對象發出IRP_MN_QUERY_INTERFACE要求,以查詢GUID_PCI_VIRTUALIZATION_INTERFACE介面。 您必須從 IRQL = PASSIVE_LEVEL提出此要求。 在此要求中,驅動程式必須將 InterfaceType 參數設定為 GUID_PCI_VIRTUALIZATION_INTERFACE。

規格需求

需求
最低支援的用戶端 NDIS 6.30 和更新版本支援。
目標平台 Universal
標頭 ndis.h (包括 Ndis.h)
程式庫 Ndis.lib
IRQL PASSIVE_LEVEL

另請參閱

EnableVirtualization

GUID_PCI_VIRTUALIZATION_INTERFACE

OID_NIC_SWITCH_CREATE_SWITCH

OID_NIC_SWITCH_DELETE_SWITCH