OID_NIC_SWITCH_CREATE_VPORT
过分驱动程序发出对象标识符 (OID) 方法请求OID_NIC_SWITCH_CREATE_VPORT,以在网络适配器的 NIC 交换机上创建非默认虚拟端口 (VPort) 。 此 OID 方法请求还会将创建的 VPort 附加到网络适配器的 PCI Express (PCIe) 物理功能 (PF) 或以前分配的 PCIe 虚拟函数 (VF) 。
过大驱动程序向网络适配器的 PF 的微型端口驱动程序发出此 OID 方法请求。 支持单根 I/O 虚拟化 (SR-IOV) 接口的 PF 微型端口驱动程序需要此 OID 方法请求。
NDIS_OID_REQUEST 结构的 InformationBuffer 成员包含指向 NDIS_NIC_SWITCH_VPORT_PARAMETERS 结构的指针。
注解
overlying 驱动程序使用有关要创建的非默认 VPort 的配置信息初始化 NDIS_NIC_SWITCH_VPORT_PARAMETERS 结构。 配置信息包括非默认 VPort 附加到的 PCIe 函数和非默认 VPort 的队列对数。
向 PF 微型端口驱动程序发出 OID 请求时,驱动程序将分配与指定的非默认 VPort 关联的硬件和软件资源。 成功分配所有资源后,PF 微型端口驱动程序将通过从 MiniportOidRequest 返回NDIS_STATUS_SUCCESS成功完成 OID。
如果OID_NIC_SWITCH_CREATE_VPORT请求成功完成,则 PF 微型端口驱动程序和 overlying 驱动程序必须保留非默认 VPort 的 VPortId 值,以便连续操作。 VPortId 值在以下操作期间使用:
NDIS 和过度覆盖的驱动程序使用 VPortId 值来标识与此 VPort 相关的连续 OID 请求中的非默认 VPort,例如 OID_NIC_SWITCH_VPORT_PARAMETERS 和 OID_NIC_SWITCH_DELETE_VPORT。
在发送操作期间,NDIS 指定 VPortId 值以标识从中发送数据包的 VPort。 此值在带外 (OOB) NDIS_NET_BUFFER_LIST_FILTERING_INFONET_BUFFER_LIST 结构的数据中指定。
在接收操作期间,PF 微型端口驱动程序指定要将数据包转发到的 VPortId 值。 此值也是在 NET_BUFFER_LIST 结构的 OOB NDIS_NET_BUFFER_LIST_FILTERING_INFO 数据中指定的。
有关详细信息,请参阅 创建虚拟端口。
注意 默认 VPort 始终存在,并且不会通过OID_NIC_SWITCH_CREATE_VPORT的 OID 请求创建。 默认 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 |
信息缓冲区的长度小于大小 (NDIS_NIC_SWITCH_VPORT_PARAMETERS) 。 PF 微型端口驱动程序必须设置 DATA。METHOD_INFORMATION。NDIS_OID_REQUEST结构中的 BytesNeeded 成员达到所需的最小缓冲区大小。 |
NDIS_STATUS_FAILURE |
由于其他原因,请求失败。 |
要求
版本 |
在 NDIS 6.30 及更高版本中受支持。 |
标头 |
Ntddndis.h (包括 Ndis.h) |