本主題描述為PCI Express (PCIe) 虛擬函式 (VF) 迷你埠驅動程式撰寫 MiniportInitializeEx 函式的指導方針。 VF 是由支援單一根目錄 I/O 虛擬化的網路適配器公開(SR-IOV)。
注意
這些指導方針僅適用於 SR-IOV 網路適配器的 VF 迷你埠驅動程式。 如需適配卡 PCIe 實體函式 (PF) 迷你埠驅動程式的初始化指導方針,請參閱 初始化 PF Miniport Driver。
當 VF 的迷你埠驅動程式的 MiniportInitializeEx 函式被呼叫時,會遵循與任何 NDIS 迷你埠驅動程式相同的步驟。 如需這些步驟的詳細資訊,請參閱 初始化Miniport Driver。
除了這些步驟之外,當 NDIS 呼叫驅動程式的 MiniportInitializeEx 函式時,VF 迷你埠驅動程式必須遵循下列額外步驟:
VF 迷你埠驅動程式會呼叫 NdisGetHypervisorInfo 函式,以確認它正在 Hyper-V 子分割中執行。 此函式會傳回定義數據分割類型的 NDIS_HYPERVISOR_INFO 結構。 如果分割區類型回報為 NdisHypervisorPartitionMsHvChild,迷你埠驅動程式會在附加至適配卡上 PF 的 Hyper-V 子分割中執行。
不同於 PF 迷你埠驅動程式,VF 迷你埠驅動程式不得與 SR-IOV 標準化關鍵詞一起安裝,而且不得嘗試讀取這些關鍵詞。 如需這些關鍵詞的詳細資訊,請參閱 SR-IOV 的標準化 INF 關鍵詞。
VF 迷你埠驅動程式會透過下列方式初始化的 NDIS_SRIOV_CAPABILITIES 結構,報告基礎虛擬網路適配器 SR-IOV 硬體功能:
迷你埠驅動程式會初始化 Header 成員。 驅動程式會將 Type 成員的 Header 設定為 NDIS_OBJECT_TYPE_DEFAULT。
從 NDIS 6.30 開始,迷你埠驅動程式會將 Revision 成員的 Header 設定為 NDIS_SRIOV_CAPABILITIES_REVISION_1,並將 Size 成員設定為 NDIS_SIZEOF_SRIOV_CAPABILITIES_REVISION_1。
迷你埠驅動程式會在 SriovCapabilities 成員中設定NDIS_SRIOV_CAPS_PF_MINIPORT旗標,以報告 SR-IOV 功能。
注意
VF 迷你埠驅動程序必須同時設定NDIS_SRIOV_CAPS_VF_MINIPORT旗標和NDIS_SRIOV_CAPS_SRIOV_SUPPORTED旗標。
VF 迷你埠驅動程式會遵循下列步驟來註冊網路適配器的 SR-IOV 功能:
迷你埠驅動程式會初始化 NDIS_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES 結構。
迷你埠驅動程式會將 HardwareSriovCapabilities 和 CurrentSriovCapabilities 成員設定為先前初始化之 NDIS_SRIOV_CAPABILITIES 結構的指標。
驅動程式會呼叫 NdisMSetMiniportAttributes,並將 MiniportAttributes 參數設定為 NDIS_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES 結構的指標。
VF 迷你埠驅動程式不得公告虛擬機佇列 (VMQ) 功能。 不過,驅動程式可以公告支援其他 NDIS 技術,例如電源管理和接收端調整(RSS)。
如需有關 RSS 的詳細資訊,請參閱 接收端縮放。