发出 OID_NIC_SWITCH_FREE_VF 请求

过度驱动程序发布对象标识符 (OID) 设置 OID_NIC_SWITCH_FREE_VF 请求,以释放 PCI Express (PCIe) 虚拟函数 (VF) 的资源。 这些资源以前是通过 OID 方法请求分配的OID_NIC_SWITCH_ALLOCATE_VF。

过度驱动程序向 PCIe 物理OID_NIC_SWITCH_FREE_VF PF 驱动程序的微型端口驱动程序发送 (设置) 。 在发送此 OID 请求之前,过度驱动程序必须执行以下操作:

  1. 过度驱动程序必须确保 VF 未附加到网络适配器的 NIC (VPort) 的任何虚拟端口。 过度驱动程序必须发出 OID 集请求OID_NIC_SWITCH_DELETE_VPORT删除附加到 VF 的所有 VPort。 有关详细信息,请参阅 删除虚拟端口

  2. 过度驱动程序初始化一个NDIS_NIC_SWITCH_FREE_VF_PARAMETERS结构。 驱动程序必须将 VFId 成员设置为在 OID 方法请求中返回的 VF OID_NIC_SWITCH_ALLOCATE_VF

过度驱动程序通过执行以下步骤OID_NIC_SWITCH_FREE_VF OID 集请求

  1. 过度驱动程序初始化 OID NDIS_OID_REQUEST请求的一个结构。 驱动程序将 InformationBuffer 成员设置到指向已初始化的 NDIS_NIC_SWITCH_FREE_VF_PARAMETERS的指针

  2. 过度驱动程序调用 NdisOidRequest 向基础 PF 微型端口驱动程序发出 OID 请求。

在过度驱动程序请求 VF 的资源分配后,该驱动程序是唯一可以请求释放同一 VF 的资源的组件。 过度驱动程序必须发出 OID 集请求 OID_NIC_SWITCH_FREE_VF释放 VF 资源。 在可以暂停过度驱动程序之前,它必须释放驱动程序请求分配的每个 VF OID_NIC_SWITCH_ALLOCATE_VF 资源。

注意 如果过度驱动程序向 OID_NIC_SWITCH_ALLOCATE_VF OID 方法请求来为 VF 分配资源,则该驱动程序是唯一可以请求释放同一 VF 的资源的组件。 过度驱动程序必须发出 OID 集请求 OID_NIC_SWITCH_FREE_VF释放 VF 资源。 在可以暂停过度驱动程序之前,它必须释放驱动程序请求分配的每个 VF OID_NIC_SWITCH_ALLOCATE_VF资源。