DXGKDDI_MITIGABLE_DEVICE_INTERFACE structure (dispmprt.h)
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.
Syntax
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;
Members
Size
Size.
Version
Represents the DXGKDDI_MITIGABLE_DEVICE_INTERFACE_VERSION.
Context
Device context.
InterfaceReference
Reference.
InterfaceDereference
Dereference.
DxgkDdiQueryMitigatedRangeCount
Called to query the mitigated range count.
DxgkDdiQueryMitigatedRanges
Called to query the mitigated ranges.
Remarks
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.
Requirements
Requirement | Value |
---|---|
Header | dispmprt.h |