IOCTL_SRIOV_MITIGATED_RANGE_UPDATE - NtDoc

Native API online documentation, based on the System Informer (formerly Process Hacker) phnt headers
// pcivirt.h

// CTL_CODE(0x0022, 0x818, METHOD_BUFFERED, FILE_READ_ACCESS)
#define IOCTL_SRIOV_MITIGATED_RANGE_UPDATE 0x00226060
View the official Windows Driver Kit DDI reference

NtDoc

No description available.

Windows Driver Kit DDI reference (ni-pcivirt-ioctl_sriov_mitigated_range_update)

IOCTL_SRIOV_MITIGATED_RANGE_UPDATE IOCTL

Major Code

IRP_MJ_DEVICE_CONTROL

Description

The IOCTL_SRIOV_MITIGATED_RANGE_UPDATE request indicates that the virtualization stack wants to update to the mitigation ranges.

Parameters

Major code

IRP_MJ_DEVICE_CONTROL

Input buffer

A pointer to a SRIOV_MITIGATED_RANGE_UPDATE_INPUT structure.

Input buffer length

Size of the SRIOV_MITIGATED_RANGE_UPDATE_INPUT structure.

Output buffer

A buffer that contains an SRIOV_MITIGATED_RANGE_UPDATE_OUTPUT-type value filled by the physical function (PF) driver when it completes the request.

Output buffer length

A pointer to a variable to contain the number of bytes written to the output buffer when the request is completed.

Input/output buffer

Not used with this operation; set this value to NULL.

Input/output buffer length

Not used with this operation; set this value to zero.

Status block

Irp->IoStatus.Status is set to STATUS_SUCCESS if the request is successful. Otherwise, Status to the appropriate error condition as a NTSTATUS code.

Remarks

This IOCTL request is sent by the virtualization stack to the PCI Express SR-IOV Physical Function (PF) driver that exposes MITIGABLE_DEVICE_INTERFACE.

The stack uses an I/O MMU to differentiate traffic coming from the various interfaces that the device exposes, enforcing policy about which regions of memory a device can access and which interrupts it can generate. When that range of memory is updated, the stack sends this request.

The physical function (PF driver) keeps the IOCTL_SRIOV_MITIGATED_RANGE_UPDATE request in its queue until the request is either cancelled by the virtualization stack or the PF driver wants to send a request to the virtual function (VF) driver to update to the mitigation ranges for a particular VF. When the VF completes the request, the PF completes the IOCTL_SRIOV_MITIGATED_RANGE_UPDATE request. Upon completion, the virtualization stack reinitializes the mitigation maps by sending IOCTL_SRIOV_QUERY_MITIGATED_RANGE_COUNT and IOCTL_SRIOV_QUERY_MITIGATED_RANGES requests. The stack may additionally call any user mode device simulation for additional ranges to mitigate. The IOCTL_SRIOV_MITIGATED_RANGE_UPDATE request is sent for each active virtual function.