共用方式為


設定 NIC Switch 的參數

上層驅動程式可以變更已在支援單一根 I/O 虛擬化的網路適配器上建立的網路介面卡 (NIC) 交換器的參數(SR-IOV)。 驅動程式會發出 OID_NIC_SWITCH_PARAMETERS 的物件標識碼 (OID) 集合要求來變更這些參數。 只有 SR-IOV 適配卡之PCI Express (PCIe) 實體函式 (PF) 的迷你埠驅動程式會處理此 OID 集合要求。

在上層驅動程式發出此 OID 集合要求之前,它必須初始化 NDIS_NIC_SWITCH_PARAMETERS 結構,以設定要在 NIC 交換器上變更的參數。 驅動程式接著會初始化 OID 要求的 NDIS_OID_REQUEST 結構,並將 InformationBuffer 成員設定為 NDIS_NIC_SWITCH_PARAMETERS 結構的指標。

只有特定的 NIC 開關組態參數子集可以被更改。 上層驅動程式會通過設定 NDIS_NIC_SWITCH_PARAMETERS 結構的下列成員,指定要變更的參數:

  • SwitchId 成員會被設置為需要變更參數的 NIC 交換器的標識碼。

    注意 從 Windows Server 2012 開始,SR-IOV 介面僅支援網路適配器上的一個 NIC 交換器。 這個開關稱為 預設 NIC 開關SwitchId 成員必須設定為 NDIS_DEFAULT_SWITCH_ID。

  • 適當的 NDIS_NIC_SWITCH_PARAMETERS_Xxx_CHANGED 標誌設定在 Flags 成員中。 只有在 Ntddndis.h 中定義對應的NDIS_NIC_SWITCH_PARAMETERS_Xxx_CHANGED 旗標時,才能變更 NDIS_NIC_SWITCH_PARAMETERS 結構的成員。

  • 對應於在 Flags 成員中設定的 NDIS_NIC_SWITCH_PARAMETERS_Xxx_CHANGED 旗標的 NDIS_NIC_SWITCH_PARAMETERS 結構成員,會依據要變更的 NIC 交換器配置參數進行設定。

    注意 從 Windows Server 2012 開始,只有 NDIS_NIC_SWITCH_PARAMETERS 結構的 SwitchName 成員可以透過 OID_NIC_SWITCH_PARAMETERS的 OID 集合要求來變更。

PF 迷你埠驅動程式在收到 OID_NIC_SWITCH_PARAMETERS 的 OID 集合要求時,必須遵循這些指導方針

  • 如果 PF 迷你埠驅動程式可以套用變更,而不需要重新初始化網路適配器,驅動程式會將變更套用至硬體,並使用 NDIS_STATUS_SUCCESS 完成 OID 要求。

    如果傳回此狀態代碼,NDIS 會更新登錄中的 NIC 交換器組態資訊。

  • 如果 PF 迷你埠驅動程式需要重新初始化網路適配器以套用變更,驅動程式會使用 NDIS_STATUS_REINIT_REQUIRED完成 OID 要求。

    如果傳回此狀態代碼,NDIS 也會更新登錄中的 NIC 交換器組態資訊。 不過,發出 OID 設定要求的上層驅動程式必須重新初始化網路適配卡,才能使變更生效。

    附註 支持靜態 NIC 建立和設定的 PF 迷你埠驅動程式可以傳回NDIS_STATUS_REINIT_REQUIRED,以確保重新初始化配接器,讓新參數生效。

  • 如果 PF 迷你埠驅動程式無法套用 OID 中要求的變更,它必須拒絕該 OID 並傳回適當的 NDIS_STATUS_Xxx 程式代碼。

    在此情況下,NDIS 不會更新登錄中的 NIC 交換器組態資訊。