Overview
Building the Virtual Display Driver from source requires specialized Windows driver development tools and SDKs. This page outlines all necessary components.Required Software
Visual Studio
You need Visual Studio 2019 or later with specific workloads:- Version: Visual Studio 2019 (17.x) or Visual Studio 2022
- Required Workloads:
- Desktop development with C++
- C++ ATL for latest build tools
- C++ MFC for latest build tools
- Windows 10/11 SDK
The project file references Visual Studio Version 17, corresponding to Visual Studio 2022. Earlier versions may work but are not officially tested.
Windows Driver Kit (WDK)
WDK Version: Windows Driver Kit for Windows 10/11- Download from Microsoft WDK download page
- Must match your Windows SDK version
- Includes driver development headers and libraries
- User-Mode Driver Framework (UMDF) 2.25 or later
- Indirect Display Driver Class Extension (IddCx) 1.10
- WPP Software Tracing
Windows SDK
Required Version: Windows 10 SDK (10.0.19041.0 or later)- Included with Visual Studio or downloadable separately
- Must be compatible with your WDK version
- Provides Windows API headers and libraries
Platform Toolset
The driver uses the WindowsUserModeDriver10.0 platform toolset:Supported Build Configurations
Platforms
The driver supports multiple architectures:| Platform | Support Level | Notes |
|---|---|---|
| x64 | ✅ Full | Primary development platform |
| ARM64 | ✅ Full | Windows 11 24H2+ (may require test signing) |
| x86 (Win32) | ⚠️ Limited | Legacy support |
| ARM | ⚠️ Limited | Legacy support |
Configurations
- Debug: Development builds with debugging symbols
- Release: Optimized builds for distribution
Framework Dependencies
UMDF (User-Mode Driver Framework)
- Version: UMDF 2.25 or later
- User-mode driver framework from Microsoft
- Provides driver lifecycle management
IddCx (Indirect Display Driver Class Extension)
- Version: IddCx 1.10 (x64/ARM64) or 1.0 (x86/ARM)
- Minimum required: IddCx 1.3 (Release x64/ARM64)
- Provides indirect display functionality
The driver uses IddCx 1.10 for x64 and ARM64 builds, supporting the latest Windows features including HDR.
Additional Build Tools
Code Analysis
- PREfast: Enabled in all configurations (
<EnablePREfast>true</EnablePREfast>) - Static analysis for driver code quality
- Automatically runs during build
WPP Tracing
- WPP: Windows software trace preprocessor
- WPP Recorder: Enabled for enhanced logging
- Required for driver diagnostics
Spectre Mitigation
For Release configurations on x64 and ARM64:Runtime Dependencies
System Libraries
The driver links against:OneCoreUAP.lib- Universal Windows Platform coreavrt.lib- Multimedia Class Scheduler Servicesetupapi.lib- Device installation functions
Third-Party Components
Windows Driver Frameworks Headers:- Location:
ThirdParty/Windows-Driver-Frameworks/src/publicinc/wdf/umdf/2.15 - UMDF 2.15 public headers
- Included in the repository
C++ Language Standard
The project uses C++17:Signing Requirements
Development Certificates
- Test signing certificates for development
- Windows SDK signing tools (signtool.exe, inf2cat.exe)
- See Driver Signing for details
Hash Algorithms
- Debug builds: SHA1 (
<FileDigestAlgorithm>SHA1</FileDigestAlgorithm>) - Release builds: SHA256 (
<FileDigestAlgorithm>SHA256</FileDigestAlgorithm>)
Environment Setup Checklist
Before building, verify you have:- Windows 10 (1903+) or Windows 11
- Visual Studio 2019/2022 with C++ desktop development
- Windows 10/11 SDK (19041+)
- Windows Driver Kit (WDK) matching your SDK
- Administrator privileges (for driver installation/testing)
- At least 10 GB free disk space
- Visual Studio Spectre-mitigated libraries (for Release builds)
Verifying Your Environment
After installing all components:- Open Visual Studio
- Navigate to Tools → Get Tools and Features
- Verify “Desktop development with C++” is installed
- Check that WDK components appear in the Visual Studio installer
Next Steps
Building from Source
Compile the driver with step-by-step instructions
Driver Signing
Learn about code signing for driver development
Troubleshooting
Missing Platform Toolset
Error: “Platform Toolset ‘WindowsUserModeDriver10.0’ not found” Solution: Install or repair the Windows Driver Kit (WDK).SDK Version Mismatch
Error: “Windows SDK version not found” Solution:- Check installed SDK versions in Visual Studio Installer
- Update
WindowsTargetPlatformVersionin project properties if needed - Ensure WDK and SDK versions are compatible