What is IddCx?
IddCx (Indirect Display Driver Class eXtension) is a Microsoft framework introduced in Windows 10 that enables developers to create display drivers for non-traditional display devices. Unlike traditional display drivers that communicate with physical GPUs and monitors, IddCx drivers create “indirect” displays that exist in software.The Virtual Display Driver is built on IddCx, leveraging Microsoft’s official framework for creating software-based displays that integrate seamlessly with Windows.
Framework Evolution
Version History
IddCx has evolved significantly since its introduction, with each version adding new capabilities:IddCx 1.0 (Windows 10 Build 10240 - Anniversary Update)
IddCx 1.0 (Windows 10 Build 10240 - Anniversary Update)
Released: Windows 10 RTM / Anniversary Update (Build 14393)Initial release with core functionality:
- Basic indirect display support
- Standard SDR rendering
- 8-bit color depth
- UMDF 2.0 driver model
- Basic monitor mode enumeration
IddCx 1.2 (Windows 10 Build 15063 - Creators Update)
IddCx 1.2 (Windows 10 Build 15063 - Creators Update)
Released: Windows 10 Creators Update (Build 15063)Enhanced capabilities:
- Improved performance optimizations
- Better multi-monitor support
- Enhanced mode validation
- Stability improvements
IddCx 1.3 (Windows 10 RS3/RS4/RS5)
IddCx 1.3 (Windows 10 RS3/RS4/RS5)
Released: Windows 10 Fall Creators Update (Build 16299)Major improvements:
- Advanced swapchain management
- Better GPU integration
- Enhanced EDID support
- Performance enhancements
IddCx 1.4 (Windows 10 19H1/19H2)
IddCx 1.4 (Windows 10 19H1/19H2)
Released: Windows 10 version 1903 (Build 18362)Significant additions:
- Cursor support improvements
- Better Direct3D integration
- Enhanced multi-GPU scenarios
- Improved power management
IddCx 1.5 (Windows 10 20H1+)
IddCx 1.5 (Windows 10 20H1+)
Released: Windows 10 version 2004 (Build 19041)Extended capabilities:
- 10-bit color support
- Enhanced HDR preparation
- Advanced cursor handling
- Better performance monitoring
- Improved error handling
IddCx 1.8 (Windows 11 21H2)
IddCx 1.8 (Windows 11 21H2)
Released: Windows 11 (Build 22000)Windows 11 debut:
- Native Windows 11 support
- Enhanced DWM integration
- Improved multi-monitor layouts
- Better scaling support
IddCx 1.9 (Windows 11 22H2)
IddCx 1.9 (Windows 11 22H2)
Released: Windows 11 22H2 (Build 22621)Advanced features:
- HDR10 static metadata support
- Enhanced color management
- Better gamma correction
- Advanced EDID handling
IddCx 1.10 (Windows 11 23H2+)
IddCx 1.10 (Windows 11 23H2+)
Released: Windows 11 23H2 (Build 22631) / 24H2 (Build 26100)Latest capabilities:
- Full HDR10 support with static metadata (SMPTE ST.2086)
- 12-bit color depth for HDR+
- Advanced color primaries (Rec.2020, DCI-P3)
- Custom gamma correction and color space transforms
- Hardware cursor support with alpha blending
- Floating-point refresh rates (23.976 Hz, 59.94 Hz, etc.)
- ARM64 architecture support
- Enhanced monitor emulation capabilities
Windows Compatibility
Minimum Requirements
Operating System
Minimum: Windows 10 Creators Update (Build 15063) with IddCx 1.2Recommended: Windows 11 23H2+ (Build 22631) for full HDR and advanced features
Feature Availability by Version
| Feature | IddCx Version | Windows Build | Notes |
|---|---|---|---|
| Basic Virtual Displays | 1.0+ | 10240+ | Core functionality |
| 8-bit SDR | 1.0+ | 10240+ | Standard color |
| 10-bit SDR | 1.5+ | 19041+ | Enhanced color depth |
| Hardware Cursor | 1.4+ | 18362+ | Alpha cursor support |
| HDR10 (10-bit) | 1.9+ | 22621+ | High dynamic range |
| HDR+ (12-bit) | 1.10+ | 22631+ | Maximum color precision |
| Floating Refresh Rates | 1.10+ | 22631+ | Fractional Hz support |
| ARM64 Support | 1.10+ | 26100+ | ARM processor compatibility |
| SMPTE ST.2086 Metadata | 1.10+ | 22631+ | HDR static metadata |
Determining Your IddCx Version
The driver includes a utility to detect the IddCx version available on your system:Using GetIddCx Utility
TheGetIddCx tool queries your Windows build and reports the supported IddCx version:
Architecture Integration
Driver Model: UMDF
IddCx drivers use the User-Mode Driver Framework (UMDF), which provides several advantages:User-Mode Execution
Runs in user space (Session 0), not kernel mode, reducing system crash risks
Enhanced Stability
Driver crashes won’t cause Blue Screen of Death (BSOD)
Easier Debugging
Standard debugging tools work without kernel debugger setup
Better Security
Limited privileges compared to kernel-mode drivers
Framework Components
IddCx provides a comprehensive set of interfaces:Core Concepts
Adapter Object
TheIDDCX_ADAPTER represents the virtual display adapter:
The adapter is created once during driver initialization and persists until the driver is unloaded.
Monitor Object
Each virtual display is represented by anIDDCX_MONITOR:
SwapChain
TheIDDCX_SWAPCHAIN manages frame buffers:
Advanced IddCx 1.10 Features
HDR Static Metadata (SMPTE ST.2086)
IddCx 1.10 introduces full HDR metadata support:Gamma Correction and Color Transforms
Hardware Cursor Support
Driver Callbacks
Essential Event Handlers
IddCx requires drivers to implement specific callbacks:Version Detection in Code
The driver can detect and adapt to the available IddCx version:Performance Characteristics
Overhead Analysis
User-Mode Latency
Slight latency increase vs kernel-mode, but negligible for display use cases
Context Switching
Minimal overhead due to efficient UMDF-kernel communication
GPU Access
Direct GPU access via D3D11, no performance penalty
Frame Rate
Supports up to 240+ Hz with no framework-imposed limits
Next Steps
Architecture
Explore how the Virtual Display Driver implements IddCx
Virtual Displays
Learn about virtual display capabilities and use cases
GetIddCx Utility
Use the GetIddCx tool to check your system’s IddCx version
HDR Configuration
Configure HDR features (requires IddCx 1.10)