配置虛擬函式的資源

支援單一根 I/O 虛擬化 (SR-IOV) 的網路介面卡必須能夠支援下列硬體元件:

  • 一個 PCI Express (PCIe) 實體函式 (PF) 。 PF 一律存在於網路介面卡上,並附加至 Hyper-V 父分割區。

    如需此硬體元件的詳細資訊,請參閱 SR-IOV 實體函式 (PF)

  • 一或多個 PCIe 虛擬函式 (VF) 。 在客體作業系統的網路元件可以透過 VF 傳送或接收封包之前,每個 VF 都必須初始化並附加至 Hyper-V 子分割區。

    如需此硬體元件的詳細資訊,請參閱 SR-IOV 虛擬函式 ()

在 Hyper-V 父資料分割的管理作業系統中執行的 PF 迷你埠驅動程式,會為 SR-IOV 網路介面卡上的 PF 和每個 VF 配置資源。 此驅動程式會為 PF 配置資源,如同任何網路介面卡一樣。 不過,驅動程式會以下列方式配置每個 VF 的資源:

  • 當驅動程式在網路介面卡上建立網路介面 (NIC) 時,PF 迷你埠驅動程式會為每個 VF 配置硬體資源。 驅動程式會藉由呼叫 NdisMEnableVirtualization來完成 VFs 的硬體資源配置。 如需此程式的詳細資訊,請參閱 建立 NIC 交換器

  • 當驅動程式處理 (OID) 方法 OID_NIC_SWITCH_ALLOCATE_VF要求的物件識別碼時,PF 迷你埠驅動程式會為 VF 配置軟體資源。 雖然硬體資源已配置給 VF,但直到 PF 迷你埠驅動程式成功完成OID_NIC_SWITCH_ALLOCATE_VF之前,它仍會被視為非操作性。

過度配置驅動程式可以發出 OID_NIC_SWITCH_ALLOCATE_VF的 OID 方法要求,要求 VF 的軟體資源配置。 OID 要求之 NDIS_OID_REQUEST結構的InformationBuffer成員包含NDIS_NIC_SWITCH_VF_PARAMETERS結構的指標。

從 OID 要求成功傳回之後,NDIS_OID_REQUEST結構的InformationBuffer成員會包含NDIS_NIC_SWITCH_VF_PARAMETERS結構的指標。 此結構具有配接器唯一的 VF 識別碼和 PCI 要求者識別碼, (RID) 。 這些識別碼會以下列方式使用:

  • 過度處理驅動程式會在與 VF 相關的動作中使用 VF 識別碼,例如:

  • 虛擬化堆疊會使用 RID 來重新對應 DMA 和 PF 與 VF 之間的中斷。 RID 也可讓硬體輸入/輸出記憶體管理單位 (IOMMU) ,將客體實體位址轉換成主機實體位址。

如需如何過度處理驅動程式 問題OID_NIC_SWITCH_ALLOCATE_VF 方法要求的詳細資訊,請參閱 發出OID_NIC_SWITCH_ALLOCATE_VF要求

如需 PF 迷你埠驅動程式如何處理 OID_NIC_SWITCH_ALLOCATE_VF 方法要求的詳細資訊,請參閱 處理OID_NIC_SWITCH_ALLOCATE_VF要求

注意 透過 OID_NIC_SWITCH_ALLOCATE_VF的 OID 方法要求配置 VF 的資源之後,就無法動態變更 VF 的資源參數。