查询虚拟功能的 PCI 供应商和设备标识符

注意 此方法只能通过覆盖 Hyper-V 父分区的管理操作系统中运行的驱动程序来使用。

OID_SRIOV_VF_VENDOR_DEVICE_ID (OID) 方法请求发出对象标识符 ,以查询 PCI Express (PCIe) 供应商标识符 (VendorID) 和设备标识符 (DeviceID) 。 此数据是从物理网络适配器上的 PCIe 虚拟函数 (VF) 的 PCIe 配置空间中读取的。

过大驱动程序向网络适配器的 PCI Express (PCIe) 物理功能 (PF) 的微型端口驱动程序发出此 OID 方法请求。 支持单根 I/O 虚拟化 (SR-IOV) 接口的 PF 微型端口驱动程序需要此 OID 方法请求。

在 Hyper-V 子分区中运行的来宾操作系统使用 VF 的 VendorID 和 DeviceID 进行泛型即插即用 (PnP) ID 进行设备枚举。 从 Windows Server 2012 开始,PF 微型端口驱动程序可以为子分区中公开的 VF 网络适配器提供以下标识符集:

  • 物理网络适配器的 VendorID 和 DeviceID。 这允许在来宾操作系统(在 Hyper-V 子分区中运行)和在 Hyper-V 父分区中运行的管理操作系统中加载兼容的驱动程序。

  • 与物理网络适配器的标识符不同的 VendorID 和 DeviceID。 这允许将驱动程序加载到更适合其使用的来宾操作系统中。 例如,PF 微型端口驱动程序可能会返回 VF 网络适配器的 VendorID 和 DeviceID,以便加载禁用某些功能集的驱动程序,例如电源管理或协议任务卸载。

在发出此 OID 方法请求之前,overlying 驱动程序必须初始化 NDIS_SRIOV_VF_VENDOR_DEVICE_ID_INFO 结构。 驱动程序必须将 VFId 成员设置为要从中读取信息的 VF 的标识符。

处理此 OID 请求时,PF 微型端口驱动程序必须验证指定的 VF 是否具有以前分配的资源。 PF 微型端口驱动程序在OID_NIC_SWITCH_ALLOCATE_VF的 OID 方法请求期间为 VF 分配资源。 如果尚未分配指定 VF 的资源,驱动程序必须使 OID 请求失败。