SRIOV_QUERY_PROBED_BARS_2回调函数 (pcivirt.h)
查询从指定的 PCI Express SR-IOV 虚拟函数(VF)基址寄存器(BAR)读取的数据(如果值 -1 先写入到它们)。
语法
SRIOV_QUERY_PROBED_BARS_2 SriovQueryProbedBars2;
NTSTATUS SriovQueryProbedBars2(
[in] PVOID Context,
[in] USHORT VfIndex,
[out] PULONG BaseRegisterValues
)
{...}
参数
[in] Context
指向驱动程序定义的上下文的指针。
[in] VfIndex
正在查询的 VF 的从零开始的索引。
[out] BaseRegisterValues
指向由 PCI 设备中的 BA 数绑定的变量数组的指针。
返回值
如果作成功,则返回STATUS_SUCCESS。 否则,返回相应的 NTSTATUS 错误代码。
言论
此回调函数由物理函数 (PF) 驱动程序实现。 当系统想要从指定的虚拟函数 (VF) 基址寄存器中读取时,将调用它。
PF 驱动程序通过设置 SRIOV_DEVICE_INTERFACE_STANDARD_2的 QueryProbedBars_2 成员、配置 WDF_QUERY_INTERFACE_CONFIG 结构以及调用 WdfDeviceAddQueryInterface来注册其实现。
当虚拟化堆栈(非特权)想要在用值(-1)写入寄存器后找出 VF 的基址寄存器值时,将调用此回调。 设置 PCI 设备时,此过程是常规的,结果允许 PCI 驱动程序知道设备在启用后解码的地址空间量。 当非特权 VM 写入 VF 的 BAR 时,特权 VM 可以停止运行。 因此,此例程需要写入 BAR。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | Windows 10 |
支持的最低服务器 | Windows Server 2016 |
目标平台 | 窗户 |
标头 | pcivirt.h |
IRQL | PASSIVE_LEVEL |