// dispmprt.h
typedef struct _DXGKDDI_MITIGABLE_DEVICE_INTERFACE {
IN USHORT Size;
IN USHORT Version;
OUT PVOID Context;
OUT PINTERFACE_REFERENCE InterfaceReference;
OUT PINTERFACE_DEREFERENCE InterfaceDereference;
OUT PDXGKDDI_QUERYMITIGATEDRANGECOUNT DxgkDdiQueryMitigatedRangeCount;
OUT PDXGKDDI_QUERYMITIGATEDRANGES DxgkDdiQueryMitigatedRanges;
} DXGKDDI_MITIGABLE_DEVICE_INTERFACE, *PDXGKDDI_MITIGABLE_DEVICE_INTERFACE;
View the official Windows Driver Kit DDI referenceNo description available.
This device interface specifies the parts of the device base address registers that need to be intercepted and mitigated.
These ranges could be sections of the hardware that are protected or could result in crashes or exploits from the guest virtual machine if they were exposed. As part of a defense-in-depth approach, these sensitive hardware regions are exposed and protected not by the user mode device emulator, but instead by the more trusted kernel mode device driver.
SizeSize.
VersionRepresents the DXGKDDI_MITIGABLE_DEVICE_INTERFACE_VERSION.
ContextDevice context.
InterfaceReferenceReference.
InterfaceDereferenceDereference.
DxgkDdiQueryMitigatedRangeCountCalled to query the mitigated range count.
DxgkDdiQueryMitigatedRangesCalled to query the mitigated ranges.
This interface is optional but must be implemented for any GPU where a virtual function has hardware resources, which are unsafe to directly expose to a VM. If a driver uses mitigation, it must also provide a user mode emulation DLL that implements the mitigation. The KMD could decide that the mitigated ranges need remapping and DxgkCbMitigatedRangeUpdate callback is provided to notify Dxgkrnl. Dxgkrnl will re-enumerate mitigated ranges asynchronously.