共用方式為


發出OID_NIC_SWITCH_ALLOCATE_VF要求

在發出 OID (OID) 方法要求之前,OID_NIC_SWITCH_ALLOCATE_VF PCI Express (PCIe) 實體函式 (PF) ,過度配置驅動程式會格式化NDIS_NIC_SWITCH_VF_PARAMETERS結構。 此結構包含配置給網路介面卡上的 PCIe 虛擬函式 (VF) 的資源組態參數。 過度配置驅動程式必須以下列方式設定此結構的成員:

  • SwitchId成員必須設定為先前在網路介面卡上建立之 NIC 交換器的識別碼。 NIC 參數是透過 OID_NIC_SWITCH_CREATE_SWITCH的 OID 方法要求來建立。

    當它處理 OID_NIC_SWITCH_ALLOCATE_VF的 OID 方法要求時,PCIe 實體函式的迷你埠驅動程式 (PF) 配置 VF 的資源。 如果成功配置資源,PF 迷你埠驅動程式會將 VF 指派給指定的 NIC 交換器。

    注意從 Windows Server 2012 中的 NDIS 6.30 開始,SR-IOV 介面僅支援網路介面卡上的預設 NIC 交換器。 SwitchId成員的值必須設定為 NDIS_DEFAULT_SWITCH_ID。

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

  • VFId成員必須設定為 NDIS_INVALID_VF_FUNCTION_ID。

  • RequestorId成員必須設定為 NDIS_INVALID_RID。

  • VMFriendlyNameVMName成員必須設定為 Hyper-V 子分割區的參數。 PF 迷你埠驅動程式只會針對資訊用途使用這些成員。

    注意 Hyper-V 子分割也稱為 虛擬機器 (VM)

    VF 會在過度配置驅動程式發出 OID_NIC_SWITCH_CREATE_SWITCH 要求之前,與指定的 VM 相關聯。

  • NicName成員必須設定為虛擬機器 (VM) 網路介面卡的識別碼。 此虛擬介面卡會在 VM 中執行的客體作業系統中公開。 PF 迷你埠驅動程式只會針對資訊用途使用此成員。

    當資源配置給 VF,並附加至子分割區時,VF 網路介面卡會在客體作業系統中公開。 VM 網路介面卡小組搭配 VF 網路介面卡,透過硬體型 VF 資料路徑進行封包傳輸。

    不過,VF 可以從子分割區中斷連結,例如在即時移轉期間。 發生這種情況時,封包傳輸會透過以軟體為基礎的綜合資料路徑進行。 如需這些資料路徑的詳細資訊,請參閱 SR-IOV 資料路徑

  • PermanentMacAddressCurrentMacAddress成員必須設定為 VF 虛擬網路介面卡的媒體存取控制 (MAC) 位址。 這些位址會公開至在 Hyper-V 子分割客體作業系統中執行的網路堆疊。

過度處理驅動程式會遵循下列步驟,發出 OID_NIC_SWITCH_ALLOCATE_VF 的 OID 方法要求:

  1. 過度處理驅動程式會初始化 OID 方法要求的 NDIS_OID_REQUEST 結構。 驅動程式會將 InformationBuffer 成員設定為初始化 NDIS_NIC_SWITCH_VF_PARAMETERS 結構的指標。

  2. 過度處理驅動程式會呼叫 NdisOidRequest ,向基礎 PF 迷你埠驅動程式發出 OID 要求。

    注意 當過度運作的驅動程式呼叫 NdisOidRequest時,NDIS 會攔截 OID 要求,並驗證 NDIS_NIC_SWITCH_VF_PARAMETERS 結構中指定的 VF 參數。 如果成功驗證參數,NDIS 會將 OID 轉送至 PF 迷你埠驅動程式。 否則,NDIS 會因為NDIS_STATUS_INVALID_PARAMETER而失敗 OID 要求。

在過度配置驅動程式要求 VF 的資源配置之後,該驅動程式是唯一可以要求釋放相同 VF 之資源的元件。 過度處理驅動程式必須發出 OID_NIC_SWITCH_FREE_VF 的 OID 集合要求,以釋放 VF 資源。 在過度處理驅動程式停止之前,它必須釋放驅動程式 OID_NIC_SWITCH_ALLOCATE_VF 要求所配置之每個 VF 的資源。