IOCTL_SRIOV_MITIGATED_RANGE_UPDATE IOCTL (pcivirt.h)

IOCTL_SRIOV_MITIGATED_RANGE_UPDATE请求指示虚拟化堆栈想要更新到缓解范围。

主要代码

IRP_MJ_DEVICE_CONTROL

输入缓冲区

指向 SRIOV_MITIGATED_RANGE_UPDATE_INPUT 结构的指针。

输入缓冲区长度

SRIOV_MITIGATED_RANGE_UPDATE_INPUT结构的大小。

状态块

Irp->如果请求成功,IoStatus.Status 设置为 STATUS_SUCCESS。 否则, 状态 为相应的错误条件作为 NTSTATUS 代码。

注解

此 IOCTL 请求由虚拟化堆栈发送到 PCI Express SR-IOV 物理函数 (公开MITIGABLE_DEVICE_INTERFACE的 PF) 驱动程序。

堆栈使用 I/O MMU 来区分来自设备公开的各种接口的流量,并强制实施有关设备可以访问哪些内存区域以及它可以生成的中断的策略。 当该内存范围更新时,堆栈会发送此请求。

PF 驱动程序 (物理函数) 将 IOCTL_SRIOV_MITIGATED_RANGE_UPDATE 请求保留在其队列中,直到请求被虚拟化堆栈取消,或者 PF 驱动程序希望将请求发送到虚拟函数 (VF) 驱动程序,以更新到特定 VF 的缓解范围。 当 VF 完成请求时,PF 将完成 IOCTL_SRIOV_MITIGATED_RANGE_UPDATE 请求。 完成后,虚拟化堆栈通过发送 IOCTL_SRIOV_QUERY_MITIGATED_RANGE_COUNTIOCTL_SRIOV_QUERY_MITIGATED_RANGES 请求重新初始化缓解映射。 堆栈可能会另外调用任何用户模式设备模拟,以缓解其他范围。 为每个活动虚拟函数发送 IOCTL_SRIOV_MITIGATED_RANGE_UPDATE 请求。

要求

要求
Header pcivirt.h
IRQL PASSIVE_LEVEL