共用方式為


列舉網路適配器上的虛擬埠

上層驅動程式或用戶應用可以在支援單一根 I/O 虛擬化(SR-IOV)的網路適配器的 NIC 交換器上獲取所有虛擬埠(VPorts)的列表。 驅動程式或應用程式發出 OID_NIC_SWITCH_ENUM_VPORTS 的物件識別碼 (OID) 方法要求,以取得此清單。

在這個 OID 查詢要求成功返回後,NDIS_OID_REQUEST 結構的 InformationBuffer 成員包含一個指向緩衝區的指標,該緩衝區包含以下內容:

在上層驅動程式或使用者應用程式發出 OID_NIC_SWITCH_ENUM_VPORTS 要求之前,必須初始化隨要求一起傳遞的 NDIS_NIC_SWITCH_VPORT_INFO_ARRAY 結構體。 初始化 NDIS_NIC_SWITCH_VPORT_INFO_ARRAY 結構時,驅動程式或應用程式必須遵循下列指導方針:

  • 如果在 Flags 成員中設定了 NDIS_NIC_SWITCH_VPORT_INFO_ARRAY_ENUM_ON_SPECIFIC_SWITCH 旗標,則會返回在指定的 NIC 交換器上創建的所有 VPorts 的資訊。 NIC 開關是由該結構中的 SwitchId 成員指定的。

    注意 從 Windows Server 2012 開始,SR-IOV 介面僅支援網路適配器上的一個 NIC 交換器。 這個交換器稱為 預設 NIC 交換器,並由 NDIS_DEFAULT_SWITCH_ID 識別符參考。 不論在 Flags 成員中設定的旗標為何,SwitchId 成員都必須設定為 NDIS_DEFAULT_SWITCH_ID。

  • 如果在 旗標 成員中設定 NDIS_NIC_SWITCH_VPORT_INFO_ARRAY_ENUM_ON_SPECIFIC_FUNCTION 旗標,則會傳回連接至指定 PCI Express (PCIe) 實體功能 (PF) 或虛擬功能 (VF) 的所有 VPort 在網路介面卡上的資訊。 PF 或 VF 是由該結構的 AttachedFunctionId 成員所指定。

    如果將 AttachedFunctionId 成員設為 NDIS_PF_FUNCTION_ID,則會返回所有 VPorts 的資訊。 這包括連結至 PF 的預設 VPort。 如果 AttachedFunctionId 成員設定為有效的 VF 標識符,則會傳回與指定 VF 相連的所有 VPorts 資訊。

    注意 從 Windows Server 2012 開始,只能將一個非預設的 VPort 附加至 VF。 不過,可以將多個 VPorts (包括預設 VPort) 附加至 PF。

  • 如果 旗標 成員設定為零,則會傳回網路適配器上連結至 PF 或 VF 的所有 VPorts 資訊。 在此情況下,會忽略 SwitchIdAttachedFunctionId 的值。

NDIS 會處理迷你埠驅動程式 OID_NIC_SWITCH_ENUM_VPORTS 要求。 NDIS 從其根據檢查下列來源維護的資料內部快取中傳回資訊。