NdisMEnableVirtualization 函式 (ndis.h)
迷你埠驅動程式會在網路適配器上建立或刪除 NIC 交換器期間呼叫 NdisMEnableVirtualization 函式。 藉由呼叫此函式,驅動程式會在網路適配器實體函式 (PF) 的PCI Express (PCIe) 組態空間中設定單一根目錄 I/O 虛擬化 (SR-IOV) 擴充功能結構。
語法
NDIS_STATUS NdisMEnableVirtualization(
[in] NDIS_HANDLE NdisMiniportHandle,
[in] USHORT NumVFs,
[in] BOOLEAN EnableVFMigration,
[in] BOOLEAN EnableMigrationInterrupt,
[in] BOOLEAN EnableVirtualization
);
參數
[in] NdisMiniportHandle
NDIS 傳遞至 MiniportAdapterHandleMiniportInitializeEx的網路適配器句柄。
[in] NumVFs
USHORT 值,其中包含要針對網路適配器啟用的虛擬函式 (VFs) 數目。 NdisMEnableVirtualization 會將 SR-IOV Extended Capability 結構的 NumVM 成員設定為 NumVM 參數的值。
[in] EnableVFMigration
此參數保留給 NDIS,而且必須設定為 FALSE。
[in] EnableMigrationInterrupt
此參數保留給 NDIS,而且必須設定為 FALSE。
[in] EnableVirtualization
BOOLEAN 值,指定是否應在網路適配器的PCI組態空間中啟用虛擬化。 如果 EnableVirtualization 為 TRUE,NdisMEnableVirtualization 會設定 SR-IOV Control 成員 VF Enable 位。 NdisMEnableVirtualization 如果 enableVirtualization 為 FALSE, 會清除此位。
傳回值
NdisMEnableVirtualization 可以傳回下列其中一個狀態值。
傳回碼 | 描述 |
---|---|
|
虛擬化作業已順利完成。 |
|
配接器或系統不支援 SR-IOV。 |
|
EnableVirtualization 參數會設定為 FALSE,且 NumVFs 參數會設定為非零值。 |
|
虛擬化作業失敗。
附註NdisMEnableVirtualization 函式會在虛擬化已啟用時呼叫它來啟用虛擬化而失敗。 驅動程式必須先停用虛擬化(藉由呼叫具有 EnableVirtualization 參數設定為 FALSE 的函式),驅動程式才能重新啟用虛擬化。
|
言論
PF 迷你埠驅動程式會呼叫 NdisMEnableVirtualization,以在PCI設定空間中設定 SR-IOV 擴充功能字段。 此呼叫可用來啟用或停用組態空間中的虛擬化,以及指定網路適配器應公開給PCIe網狀架構的 VF 數目。
當 PF 迷你埠驅動程式處理 OID_NIC_SWITCH_CREATE_SWITCH的 OID 方法要求時,驅動程式會呼叫 NdisMEnableVirtualization,以啟用 NIC 交換器網路適配器上的虛擬化。 驅動程式會使用下列參數設定呼叫 NdisMEnableVirtualization 來執行此動作。
術語 | 描述 |
---|---|
NumVF | 設定為要針對 NIC 參數啟用的 VF 數目。 |
EnableVirtualization | 設定為TRUE。 |
當 PF 迷你埠驅動程式處理 OID_NIC_SWITCH_DELETE_SWITCH的 OID 方法要求時,驅動程式會呼叫 NdisMEnableVirtualization 來停用網路適配器上的虛擬化。 驅動程式會使用下列參數設定呼叫 NdisMEnableVirtualization 來執行此動作:
術語 | 描述 |
---|---|
NumVF | 設定為零。 |
EnableVirtualization | 設定為 FALSE。 |
如需如何建立 NIC 參數的詳細資訊,請參閱 建立 NIC 交換器。
如需 SR-IOV 介面的詳細資訊,請參閱 單一根 I/O 虛擬化概觀 (SR-IOV)。
與虛擬總線驅動程式的介面
如果獨立硬體廠商 (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 |
另請參閱