Skip to main content

Overview

Building the Virtual Display Driver from source requires specialized Windows driver development tools and SDKs. This page outlines all necessary components.
Driver development requires Windows-specific tools. The driver can only be built on Windows 10/11 with the appropriate WDK installed.

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 Key WDK Components Used:
  • 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:
<PlatformToolset>WindowsUserModeDriver10.0</PlatformToolset>
This toolset is installed automatically with the WDK.

Supported Build Configurations

Platforms

The driver supports multiple architectures:
PlatformSupport LevelNotes
x64✅ FullPrimary development platform
ARM64✅ FullWindows 11 24H2+ (may require test signing)
x86 (Win32)⚠️ LimitedLegacy support
ARM⚠️ LimitedLegacy 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:
<Driver_SpectreMitigation>Spectre</Driver_SpectreMitigation>
Requires Visual Studio Spectre-mitigated libraries.

Runtime Dependencies

System Libraries

The driver links against:
  • OneCoreUAP.lib - Universal Windows Platform core
  • avrt.lib - Multimedia Class Scheduler Service
  • setupapi.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:
<LanguageStandard>stdcpp17</LanguageStandard>
Ensure your compiler supports C++17 features.

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:
  1. Open Visual Studio
  2. Navigate to Tools → Get Tools and Features
  3. Verify “Desktop development with C++” is installed
  4. 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:
  1. Check installed SDK versions in Visual Studio Installer
  2. Update WindowsTargetPlatformVersion in project properties if needed
  3. Ensure WDK and SDK versions are compatible

Missing Include Directories

Error: “Cannot open include file ‘IddCx.h’” Solution: Verify WDK is installed and environment variables are set correctly. Restart Visual Studio after WDK installation.

Additional Resources

Build docs developers (and LLMs) love