配置虛擬函式的資源
支援單一根 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 識別碼,例如:
透過 OID_NIC_SWITCH_VF_PARAMETERS的 OID 方法要求取得目前的 VF 參數。
透過 OID_NIC_SWITCH_FREE_VF的 OID 集合要求,釋放先前為 VF 配置的資源。
透過 OID_SRIOV_RESET_VF的 OID 集合要求,向 VF 發出 PCI 重設。
虛擬化堆疊會使用 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 的資源參數。