Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/VirtualDrivers/Virtual-Display-Driver/llms.txt

Use this file to discover all available pages before exploring further.

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