共用方式為


判斷 SR-IOV 功能

本主題描述 NDIS 和過度載入驅動程式如何判斷網路介面卡的單一根 I/O 虛擬化 (SR-IOV) 功能。 本主題包含下列資訊:

在 MiniportInitializeEx期間報告 SR-IOV 功能

透過過度處理驅動程式來查詢 SR-IOV 功能

在 MiniportInitializeEx期間報告 SR-IOV 功能

當 NDIS 呼叫迷你埠驅動程式的 MiniportInitializeEx 函式時,驅動程式會提供下列 SR-IOV 功能:

  • 網路介面卡可支援的完整 SR-IOV 硬體功能集。

  • 目前在網路介面卡上啟用的 SR-IOV 功能。

  • 迷你埠驅動程式是否正在管理網路介面卡上的 PCI Express (PCIe) 實體函式 (PF) 或虛擬函式 (VF) 。

迷你埠驅動程式會透過下列方式初始化 的NDIS_SRIOV_CAPABILITIES 結構,報告基礎網路介面卡的 SR-IOV 硬體功能:

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

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

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

    如果網路介面卡支援 SR-IOV,PCI Express (PCIe 的迷你埠驅動程式) 介面卡的實體函式必須設定下列旗標:

    • NDIS_SRIOV_CAPS_SRIOV_SUPPORTED

    • NDIS_SRIOV_CAPS_PF_MINIPORT

    注意

     網路介面卡 (VF) PCIe 虛擬函式的迷你埠驅動程式必須同時設定 NDIS_SRIOV_CAPS_VF_MINIPORT 旗標和 NDIS_SRIOV_CAPS_SRIOV_SUPPORTED 旗標。  

當 NDIS 呼叫迷你埠驅動程式的 MiniportInitializeEx 函式時,驅動程式會遵循下列步驟來註冊網路介面卡的 SR-IOV 功能:

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

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

    如果 *SRIOV INF 關鍵字的登錄設定有一個值,則網路介面卡上目前會啟用 SR-IOV 功能。 迷你埠驅動程式會將 CurrentSriovCapabilities 成員設定為相同 NDIS_SRIOV_CAPABILITIES 結構的指標。

    如果 *SRIOV INF 關鍵字的登錄設定值為零,網路介面卡上目前會停用 SR-IOV 功能。 迷你埠驅動程式必須將 CurrentSriovCapabilities 成員設定為 Null。

    如需 *SRIOV INF 關鍵字的詳細資訊,請參閱 SR-IOV 的標準化 INF 關鍵字

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

如需配接器初始化程式的詳細資訊,請參閱 初始化 Miniport 配接器

透過過度處理驅動程式來查詢 SR-IOV 功能

NDIS 會以下列方式將網路介面卡目前啟用的 SR-IOV 功能傳遞至系結至網路介面卡的過度驅動程式:

當 NDIS 處理物件識別碼 (OID) 過度通訊協定或篩選驅動程式所發出的OID_SRIOV_HARDWARE_CAPABILITIES和OID_SRIOV_CURRENT_CAPABILITIES查詢要求時,NDIS 也會傳回NDIS_SRIOV_CAPABILITIES結構。