共用方式為


處理OID_NIC_SWITCH_ALLOCATE_VF要求

當網路介面卡上的 PCI Express (PCIe) 實體函式的迷你埠驅動程式 (PF) 會處理 OID_NIC_SWITCH_ALLOCATE_VF OID) 方法要求的物件 (識別碼時,它會執行下列動作:

  • PF 迷你埠驅動程式會為網路介面卡上的 PCIe 虛擬函式 (VF) 配置軟體資源。 這些資源會根據 NDIS_NIC_SWITCH_VF_PARAMETERS 結構中指定的參數進行設定。

  • PF 迷你埠驅動程式會將 VF 指派給網路介面卡上的 NIC 交換器。 NIC 參數是由NDIS_NIC_SWITCH_VF_PARAMETERS結構的SwitchId成員所識別。

    如需 NIC 參數的詳細資訊,請參閱 NIC 參數

  • PF 迷你埠驅動程式會使用 VF 識別碼來更新 VFId 成員。 此識別碼是以零起始的索引,而且在 PF 迷你埠驅動程式在 NIC 交換器上配置的所有 VF 必須是唯一的。

    過度處理驅動程式會在後續的 OID 要求中使用 VFId 成員的值 ,OID_NIC_SWITCH_FREE_VFOID_NIC_SWITCH_VF_PARAMETERS

  • PF 迷你埠驅動程式會使用 VF 的 PCIe 要求者識別碼 (RID) 來更新 RequestorId 成員。

    迷你埠驅動程式會呼叫 NdisMGetVirtualFunctionLocation 來取得對應至 VF 的 RID 資訊。 驅動程式接著會根據呼叫 NdisMGetVirtualFunctionLocation所傳回的資訊,使用NDIS_MAKE_RID宏建立 RID。

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

  • PF 迷你埠驅動程式會初始化並公開 VF。 這可讓 VF 準備好供虛擬化堆疊使用。

如果 PF 迷你埠驅動程式可以成功配置必要的軟體資源並初始化 VF,驅動程式就會使用 NDIS_STATUS_SUCCESS 完成 OID 要求。 PF 迷你埠驅動程式必須保留每個已配置 VF 的 VF 識別碼。 NDIS 和過度運用驅動程式會針對各種動作使用後續 OID 要求中的 VF 識別碼,例如重設或釋放 VF。

注意 配置 VF 的資源時,VF 處於未連結的狀態,因為虛擬埠 (VPort) 未附加至 VF。 過度處理驅動程式可以發出 OID_NIC_SWITCH_CREATE_VPORT 的 OID 要求,以建立 VPort 並將其連結至 VF。 如需詳細資訊,請參閱 建立虛擬埠