共用方式為


初始化 VF Miniport 驅動程式

本主題描述針對PCI Express (PCIe) 虛擬函式 (VF) 的迷你埠驅動程式撰寫 MiniportInitializeEx 函式的指導方針。 VF 是由支援單一根目錄 I/O 虛擬化 (SR-IOV) 的網路適配器所公開。

注意

 這些指導方針僅適用於 SR-IOV 網路適配器的 VF 迷你埠驅動程式。 如需適配卡 PCIe 實體函式 (PF) 迷你埠驅動程式的初始化指導方針,請參閱 初始化 PF 迷你埠驅動程式。 

當呼叫 VF MiniportInitializeEx 函式時,VF 迷你埠驅動程式會遵循與任何 NDIS 迷你埠驅動程式相同的步驟。 如需這些步驟的詳細資訊,請參閱 初始化 Miniport 驅動程式

除了這些步驟之外,當 NDIS 呼叫驅動程式的 MiniportInitializeEx 函式時,VF 迷你埠驅動程式必須遵循下列額外步驟:

  • VF 迷你埠驅動程式會呼叫 NdisGetHypervisorInfo 函式,以確認它正在 Hyper-V 子分割中執行。 此函式會傳 回定義數據分割類型的NDIS_HYPERVISOR_INFO 結構。 如果分割區類型回報為 NdisHypervisorPartitionMsHvChild,迷你埠驅動程式會在附加至適配卡上 PF 的 Hyper-V 子分割中執行。

    注意

    如果分割區類型回報為 NdisHypervisorPartitionMsHvParent,迷你埠驅動程式就會在附加至適配卡上 PF 的 Hyper-V 父分割區中執行。 在此情況下,迷你埠驅動程式不得初始化為 VF 驅動程式。 可能的話,驅動程式必須初始化為 PF 驅動程式,如 PF 迷你埠驅動程式的初始化順序中所述

  • 不同於 PF 迷你埠驅動程式,VF 迷你埠驅動程式不得與 SR-IOV 標準化關鍵詞一起安裝,且不得嘗試讀取這些關鍵字。 如需這些關鍵詞的詳細資訊,請參閱 SR-IOV 的標準化 INF 關鍵詞。

  • VF 迷你埠驅動程式會透過 下列方式初始化的NDIS_SRIOV_CAPABILITIES 結構,報告基礎虛擬網路適配器的 SR-IOV 硬體功能:

    1. 迷你埠驅動程式會 初始化 Header 成員。 驅動程式會將 HeaderType 成員設定為 NDIS_OBJECT_TYPE_DEFAULT。

      從 NDIS 6.30 開始,迷你埠驅動程式會將 Header 的 Revision 成員設定為 NDIS_SRIOV_CAPABILITIES _REVISION_1,並將 Size 成員設定為 NDIS_SIZEOF_SRIOV_CAPABILITIES_REVISION_1。

    2. 迷你埠驅動程式會將 SriovCapabilities 成員中的NDIS_SRIOV_CAPS_PF_MINIPORT旗標設定為報告 SR-IOV 功能。

      注意

      VF 迷你埠驅動程序必須同時設定NDIS_SRIOV_CAPS_VF_MINIPORT旗標和NDIS_SRIOV_CAPS_SRIOV_SUPPORTED旗標。

    VF 迷你埠驅動程式會遵循下列步驟來註冊網络適配器的 SR-IOV 功能:

    1. 迷你埠驅動程式會 初始化NDIS_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES 結構。

      迷你埠驅動程式會將 HardwareSriovCapabilities 和 CurrentSriovCapabilities 成員設定為先前初始化NDIS_SRIOV_CAPABILITIES結構的指標。

    2. 驅動程式會呼叫 NdisMSetMiniportAttributes,並將 MiniportAttributes 參數設定為NDIS_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES結構的指標

  • VF 迷你埠驅動程式不得公告虛擬機佇列 (VMQ) 功能。 不過,驅動程式可以公告支援其他 NDIS 技術,例如電源管理和接收端調整(RSS)。

    如需 RSS 的詳細資訊,請參閱 接收端調整