Updates for IddCx versions 1.9 and later

This page describes the changes made in IddCx 1.9. A single indirect display driver (IDD) binary built against IddCx 1.9 can run on Windows 10, version 1803 and above using runtime checks to verify whether DDI changes in IddCx 1.9 are available on that system. See Building a WDF driver for multiple versions of Windows for more info.

The IddCx 1.9 changes fall into the following categories:

  • The IddCxGetVersion version was updated. See IddCx versions for a complete list of IddCx-related version information.
  • A DDI was added that allows an IDD to bump video scheduler priority to the realtime priority band.
  • UMDF process pooling is disallowed.

Updated IddCxGetVersion version

The IddCx version returned by IddCxGetVersion on Windows 11 version 22H2 was updated to IDDCX_VERSION_SV2 (0x1900).

IddCxSetRealtimeGPUPriority was added for raising video scheduler priority

The IddCxSetRealtimeGPUPriority DDI was introduced to allow the IDD to raise the GPU priority of GPU devices being used in the present path to process the desktop frame. This ability is useful to avoid GPU starvation for IDD GPU work when GPU workload is high.

Required IddCx 1.9 driver INF update to disallow UMDF process pooling

To reduce the surface for abuse of IddCxSetRealtimeGPUPriority for denial of service attacks, IddCx 1.9 drivers are not allowed to share process with other UMDF drivers. An IddCx 1.9 driver needs to add the following in their inf file.

HKR, "WUDF", "DeviceGroupId", %REG_SZ%, "<DriverGroupName>" 

See the INF file in the GitHub IndirectDisplay sample for an example.