過度的驅動程式會發出OID_NIC_SWITCH_CREATE_VPORT的物件標識碼 (OID) 方法要求,以在網路適配器的 NIC 交換器上建立非預設虛擬埠 (VPort)。 此 OID 方法要求也會將建立的 VPort 附加至網路適配器的 PCI Express (PCIe) 實體函式 (PF) 或先前配置的 PCIe 虛擬函式 (VF)。
過度配置驅動程式會發出此 OID 方法要求給網路適配器 PF 的迷你埠驅動程式。 支援單一根 I/O 虛擬化 (SR-IOV) 介面的 PF 迷你埠驅動程式需要此 OID 方法要求。
InformationBufferNDIS_OID_REQUEST 結構的成員包含 NDIS_NIC_SWITCH_VPORT_PARAMETERS 結構的指標。
言論
過度配置驅動程式會使用要建立之非預設 VPort 的組態資訊,初始化 NDIS_NIC_SWITCH_VPORT_PARAMETERS 結構。 組態資訊包括附加非預設 VPort 的 PCIe 函式,以及非預設 VPort 的佇列配對數目。
當 PF 迷你埠驅動程式發出 OID 要求時,驅動程式會配置與指定之非預設 VPort 相關聯的硬體和軟體資源。 成功配置所有資源之後,PF 迷你埠驅動程式會從 MiniportOidRequest傳回NDIS_STATUS_SUCCESS,以順利完成 OID。
如果OID_NIC_SWITCH_CREATE_VPORT要求順利完成,PF 迷你埠驅動程式和過度裝載的驅動程序必須保留非預設 VPort 非預設 VPort 的 值以進行後續作業。 這些作業期間會使用 VPortId 值:
NDIS 和過度載入的驅動程式會使用 VPortId 值來識別與此 VPort 相關的後續 OID 要求中的非預設 VPort,例如 OID_NIC_SWITCH_VPORT_PARAMETERS 和 OID_NIC_SWITCH_DELETE_VPORT。
在傳送作業期間,NDIS 會指定 VPortId 值,以識別封包從中傳送的 VPort。 此值是在 NET_BUFFER_LIST 結構的頻外 (OOB) 內指定 NDIS_NET_BUFFER_LIST_FILTERING_INFO 數據。
在接收作業期間,PF 迷你埠驅動程式會指定要轉送封包的 VPortId 值。 這個值也會在 NET_BUFFER_LIST 結構的 OOB NDIS_NET_BUFFER_LIST_FILTERING_INFO 數據中指定。
如需詳細資訊,請參閱 建立虛擬埠。
附注 預設 VPort 一律存在,而且不會透過 OID 要求OID_NIC_SWITCH_CREATE_VPORT建立。 默認 VPort 的識別碼為 NDIS_DEFAULT_VPORT_ID。 當 PF 迷你埠驅動程式建立 NIC 交換器時,驅動程式會自動將預設 VPort 附加至網路適配器的 PF。
傳回狀態代碼
NDIS 或 PF 迷你埠驅動程式會針對 OID_NIC_SWITCH_CREATE_SWITCH 的 OID 方法要求傳回下列其中一個狀態代碼。
| 狀態代碼 | 描述 |
|---|---|
NDIS_STATUS_SUCCESS |
OID 要求已順利完成。 |
NDIS_STATUS_NOT_SUPPORTED |
PF 迷你埠驅動程序不支援 SR-IOV 介面,或未啟用使用 介面。 |
NDIS_STATUS_INVALID_PARAMETER |
NDIS_NIC_SWITCH_VPORT_PARAMETERS 結構的一或多個成員具有無效的值。 |
NDIS_STATUS_INVALID_LENGTH |
信息緩衝區的長度小於sizeof(NDIS_NIC_SWITCH_VPORT_PARAMETERS)。 PF 迷你埠驅動程序必須設定 數據。METHOD_INFORMATION。BytesNeededNDIS_OID_REQUEST 結構中的成員,以所需的緩衝區大小下限。 |
NDIS_STATUS_FAILURE |
要求因其他原因而失敗。 |
要求
版本 |
NDIS 6.30 和更新版本支援。 |
頁眉 |
Ntddndis.h (包括 Ndis.h) |