OID_NIC_SWITCH_CREATE_SWITCH
NDIS 发出对象标识符 (OID) 方法请求OID_NIC_SWITCH_CREATE_SWITCH在网络适配器上创建 NIC 交换机。 处理此 OID 请求时,微型端口驱动程序会为适配器上的 NIC 开关分配资源。
NDIS 向网络适配器的 PCI Express (PCIe) 物理功能 (PF) 的微型端口驱动程序发出此 OID 方法请求。 支持单根 I/O 虚拟化 (SR-IOV) 接口的 PF 微型端口驱动程序需要此 OID 方法请求。
注意 过度使用驱动程序(如协议或筛选器驱动程序)无法向 PF 微型端口驱动程序发出OID_NIC_SWITCH_CREATE_SWITCH的 OID 方法请求。
NDIS_OID_REQUEST 结构的 InformationBuffer 成员包含指向NDIS_NIC_SWITCH_PARAMETERS结构的指针。
注解
收到 OID_NIC_SWITCH_CREATE_SWITCH 的 OID 方法请求时,PF 微型端口驱动程序必须执行以下操作:
如果 PF 微型端口驱动程序支持静态交换机创建和配置,则在 NDIS 调用 MiniportInitializeEx 时,它会创建 NIC 交换机。 当驱动程序处理此 OID 请求时,它必须验证 NDIS_NIC_SWITCH_PARAMETERS 结构中的配置参数。 参数必须与驱动程序在调用 MiniportInitializeEx 期间用于创建开关的参数相同。 如果不是这样,则驱动程序必须使 OID 请求失败。
有关详细信息,请参阅 NIC 交换机的静态创建。
如果 PF 微型端口驱动程序支持动态交换机创建和配置,则驱动程序必须验证 NDIS_NIC_SWITCH_PARAMETERS 结构的配置值,并根据这些值创建 NIC 开关。
有关详细信息,请参阅 NIC 交换机的动态创建。
PF 微型端口驱动程序必须为 NIC 交换机上的默认 VPort 分配必要的硬件和软件资源。
注意 默认 VPort 始终通过 OID_NIC_SWITCH_CREATE_SWITCH 的 OID 请求创建,并通过 OID_NIC_SWITCH_DELETE_SWITCH 的 OID 请求删除。 OID_NIC_SWITCH_CREATE_VPORT和OID_NIC_SWITCH_DELETE_VPORT的 OID 请求用于在 NIC 交换机上创建和删除非默认 VPort。
支持动态交换机创建和配置的 PF 微型端口驱动程序必须通过调用 NdisMEnableVirtualization 在交换机上启用 SR-IOV 虚拟化。 此调用在适配器的 PCI Express (PCIe) 配置空间的 SR-IOV 扩展功能结构中配置 NumVF 成员和 VF Enable 位。
有关 SR-IOV 配置空间的详细信息,请参阅 PCI-SIG 单根 I/O 虚拟化和共享 1.1 规范。
注意 如果 PF 微型端口驱动程序支持静态交换机创建,则在调用 MiniportInitializeEx 时,它会在创建开关后启用 SR-IOV 虚拟化。
如果 PF 微型端口驱动程序成功完成 OID_NIC_SWITCH_CREATE_SWITCH 的 OID 方法请求,则允许发生以下情况:
可以通过 OID_NIC_SWITCH_ALLOCATE_VF的 OID 方法请求在 NIC 交换机上分配 VF。
可以通过 OID_NIC_SWITCH_CREATE_VPORT的 OID 方法请求在 NIC 交换机上创建非默认 VPort。
有关如何处理此 OID 请求的详细信息,请参阅 处理OID_NIC_SWITCH_CREATE_SWITCH请求。
返回状态代码
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_PARAMETERS 结构的一个或多个成员具有无效值。 |
NDIS_STATUS_INVALID_LENGTH |
信息缓冲区的长度小于大小 (NDIS_NIC_SWITCH_PARAMETERS) 。 PF 微型端口驱动程序必须设置 DATA。METHOD_INFORMATION。NDIS_OID_REQUEST结构中的 BytesNeeded 成员达到所需的最小缓冲区大小。 |
NDIS_STATUS_FAILURE |
请求因其他原因而失败。 |
要求
版本 |
在 NDIS 6.30 及更高版本中受支持。 |
标头 |
Ntddndis.h (包括 Ndis.h) |