Skip to content

phoenixdev-512/VirtualCamDriver

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

32 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🎭 Virtual Camera Driver for Windows Hello

A Windows kernel-mode driver that enables Windows Hello facial recognition support for virtual camera devices through driver emulation and Media Foundation Transform processing.

πŸš€ NEW: Ready to Start Development?

β†’ START HERE: Immediate Steps Guide

Complete practical guides for Week 1:

First time here? β†’ Start with IMMEDIATE_STEPS_START_HERE.md for the complete roadmap.


πŸ“š Quick Navigation

πŸ“– Project Genesis - How It All Began

The Vision

This project was born from the goal of making regular RGB webcams compatible with Windows Hello facial recognition by emulating the behavior of certified biometric cameras (like Intel RealSense or Surface cameras). The core concept: if we can make Windows believe a standard webcam has the proper biometric capabilities, we can enable Windows Hello face authentication without specialized hardware.

Development Journey - Step by Step

Phase 1: Research & Planning βœ…

  1. Analyzed Windows Hello Requirements: Studied how Windows Hello detects and validates biometric cameras
  2. Reverse-Engineered Reference Drivers: Examined existing camera drivers (Realtek, RealSense) to understand the architecture
  3. Identified Key Components: Determined that we needed:
    • Kernel-mode driver (KMDF) to present as a camera device
    • Media Foundation Transform (MFT) for stream processing
    • Proper INF configuration with Camera class and Windows Hello signature attributes
    • Multi-stream support (RGB + IR) for full biometric compatibility

Phase 2: Core Infrastructure βœ…

  1. Created KMDF Driver Skeleton: Built the foundational Windows Driver Framework structure
    • Driver entry points (Driver.c/h)
    • Device management (Device.c/h)
    • I/O queue handlers (Queue.c/h)
    • WPP trace logging support
  2. Configured Build System: Set up Visual Studio 2022 solution with WDK integration
    • x64 and ARM64 platform support
    • Debug and Release configurations
    • Proper library dependencies and build settings

Phase 3: Windows Hello Integration βœ…

  1. Modified INF File: This was the breakthrough moment
    • Changed device class from "System" to "Camera" (GUID: {ca3e7ab9-b4c3-4ae6-8251-579ef933890f})
    • Added SignatureAttributes.WindowsHello section to mark binaries as Hello-compatible
    • Configured camera device interfaces for Windows recognition
    • Registered MFT CLSID for stream processing association
  2. Implemented Media Foundation Transform (MFT): Complete COM-based stream processor
    • Full IMFTransform interface implementation (~500 lines of code)
    • Support for RGB24 and YUY2 video formats
    • Pass-through processing architecture (extensible for AI/ML)
    • COM factory and DLL registration infrastructure

Phase 4: Integration & Documentation βœ…

  1. Connected All Components: Ensured driver and MFT work together seamlessly
  2. Created Comprehensive Documentation:
    • Build and installation guides
    • Quick reference commands
    • Deployment checklists
    • Troubleshooting procedures
  3. Developed Automation Scripts:
    • install.bat - Automated installation with validation
    • uninstall.bat - Clean removal process
    • verify.bat - Post-installation verification

Current Status Summary

Core Implementation: COMPLETE βœ…

The foundational architecture is fully implemented and ready for testing:

  • βœ… KMDF Driver: Full kernel-mode driver structure with proper WDF architecture
  • βœ… Camera Class Configuration: INF properly configured for Camera class with Windows Hello attributes
  • βœ… MFT Implementation: Complete IMFTransform implementation with COM infrastructure
  • βœ… Build System: Visual Studio 2022 + WDK support for x64/ARM64
  • βœ… Documentation: Comprehensive guides for building, installing, and troubleshooting
  • βœ… Installation Scripts: Automated install/uninstall/verify batch files

What Works Now:

  • Driver compiles and builds successfully
  • Installs as Camera device in Device Manager
  • MFT registers with Media Foundation
  • Windows Hello signature attributes are present
  • All infrastructure ready for stream processing

Next Steps (Requires Hardware Testing):

  • πŸ”„ Physical camera stream capture implementation
  • πŸ”„ RGB to IR stream simulation for biometric verification
  • πŸ”„ Multi-stream support (RGB + IR) for full Windows Hello compatibility
  • πŸ”„ Windows Hello face enrollment and authentication testing
  • πŸ”„ Optional: AI/ML integration (ONNX Runtime for enhanced face detection)

🎯 Key Features

  • πŸ“Ή Virtual Camera Emulation: Presents as a genuine camera device to Windows
  • πŸ” Windows Hello Compatible: Configured with biometric camera signature attributes
  • 🎬 MFT Stream Processing: Complete Media Foundation Transform for video frame handling
  • πŸ’» Multi-Platform Support: x64 and ARM64 architectures
  • πŸ“Š Trace Logging: WPP (Windows Software Trace Preprocessor) for debugging
  • 🧠 Extensible Architecture: Ready for AI/ML integration and custom processing
  • βš™οΈ Production-Ready Infrastructure: Complete build, install, and verification tools

πŸ—οΈ Architecture

VirtualCamDriver/
β”œβ”€β”€ VirtualCamDriver/              # KMDF Kernel Driver
β”‚   β”œβ”€β”€ Driver.c/.h               # Driver entry points and initialization
β”‚   β”œβ”€β”€ Device.c/.h               # Device object creation and management
β”‚   β”œβ”€β”€ Queue.c/.h                # I/O request queue handling
β”‚   β”œβ”€β”€ VirtualCamDriver.inf      # Installation file with Camera class config
β”‚   β”œβ”€β”€ Trace.h                   # WPP tracing definitions
β”‚   └── Public.h                  # Public interface definitions
β”‚
β”œβ”€β”€ VirtualCamMFT/                # Media Foundation Transform DLL
β”‚   β”œβ”€β”€ VirtualCamMFT.h/.cpp      # Complete IMFTransform implementation
β”‚   β”œβ”€β”€ DllMain.cpp               # COM factory & DLL registration
β”‚   β”œβ”€β”€ VirtualCamMFT.def         # DLL export definitions
β”‚   └── README.md                 # MFT-specific documentation
β”‚
β”œβ”€β”€ Documentation/
β”‚   β”œβ”€β”€ BUILD_AND_INSTALL.md      # Complete build & installation guide
β”‚   β”œβ”€β”€ IMPLEMENTATION_SUMMARY.md # Detailed implementation status
β”‚   β”œβ”€β”€ objective.md              # Original project objectives
β”‚   └── steps.md                  # Development roadmap
β”‚
β”œβ”€β”€ install.bat                   # Automated installation script
β”œβ”€β”€ uninstall.bat                 # Clean removal script
β”œβ”€β”€ verify.bat                    # Post-install verification
β”œβ”€β”€ QUICK_REFERENCE.md            # Command quick reference
└── DEPLOYMENT_CHECKLIST.md       # Production deployment guide

πŸ“‹ Prerequisites

Development Environment

  • Operating System: Windows 10 (version 1903+) or Windows 11 (x64 or ARM64)
  • Visual Studio 2022: Community, Professional, or Enterprise edition
    • Install with "Desktop development with C++" workload
  • Windows Driver Kit (WDK): Version 22H2 or later
  • Windows SDK: Version 10.0.22000.0 or later (included with WDK)
  • Windows Debugging Tools: For troubleshooting (optional but recommended)

Runtime Requirements

  • Administrator Privileges: Required for driver installation
  • Test Signing Mode: Required for development (see Certificate Signing section below)
  • PnPUtil or DevCon: For driver management (PnPUtil included with Windows)

πŸš€ Step-by-Step Installation Guide

Step 1: Build the Project

Option A: Using Visual Studio (Recommended)

  1. Open the solution:

    Double-click VirtualCamDriver.sln
    
  2. Select configuration:

    • Platform: x64 (or ARM64 for ARM devices)
    • Configuration: Release (for production) or Debug (for development)
  3. Build the solution:

    • Press Ctrl+Shift+B or
    • Menu: Build β†’ Build Solution
  4. Verify build output:

    • Check the Output window for build success
    • Locate binaries in: x64\Release\ or x64\Debug\
    • Required files:
      • VirtualCamDriver.sys (driver)
      • VirtualCamMFT.dll (MFT)
      • VirtualCamDriver.inf (installation file)

Option B: Using Command Line (MSBuild)

# Navigate to the project directory
cd C:\path\to\VirtualCamDriver

# Build for x64 Release
msbuild VirtualCamDriver.sln /t:Build /p:Configuration=Release /p:Platform=x64

# Build for ARM64 Release
msbuild VirtualCamDriver.sln /t:Build /p:Configuration=Release /p:Platform=ARM64

Step 2: Certificate Signing (Critical!)

⚠️ Windows requires all drivers to be digitally signed. Here are your options:

Option A: Test Signing Mode (Development & Testing) ⭐ RECOMMENDED FOR TESTING

This is the easiest workaround for development and testing without purchasing a certificate.

  1. Enable Test Signing (requires Administrator privileges and restart):

    # Open Command Prompt as Administrator
    bcdedit /set testsigning on
    
    # Restart your computer
    shutdown /r /t 0
  2. Verify test signing is enabled (after restart):

    bcdedit /enum {current} | findstr "testsigning"
    # Should show: testsigning             Yes

    Note: When test signing is enabled, you'll see a watermark on your desktop saying "Test Mode"

  3. Create a self-signed test certificate (one-time setup):

    # Create a test certificate and install it
    makecert -r -pe -ss PrivateCertStore -n "CN=VirtualCamDriver Test Certificate" TestCert.cer
    
    # Install the certificate to the root store (run as Administrator)
    certutil -addstore Root TestCert.cer
  4. Sign the driver and MFT:

    # Navigate to your build output directory
    cd x64\Release
    
    # Sign the driver
    signtool sign /v /s PrivateCertStore /n "VirtualCamDriver Test Certificate" /t http://timestamp.digicert.com VirtualCamDriver.sys
    
    # Sign the MFT DLL
    signtool sign /v /s PrivateCertStore /n "VirtualCamDriver Test Certificate" /t http://timestamp.digicert.com VirtualCamMFT.dll
  5. Verify signatures:

    signtool verify /pa VirtualCamDriver.sys
    signtool verify /pa VirtualCamMFT.dll

Option B: Production Code Signing (For Distribution)

For distributing your driver to end users, you need a legitimate code signing certificate.

  1. Obtain an EV (Extended Validation) Code Signing Certificate:

    • Purchase from a trusted Certificate Authority (CA):
      • DigiCert
      • GlobalSign
      • Sectigo
    • Cost: ~$200-$500 per year
    • Requires business verification
  2. Sign with production certificate:

    # Using a PFX file with password
    signtool sign /v /fd SHA256 /f "YourCertificate.pfx" /p "YourPassword" /t http://timestamp.digicert.com VirtualCamDriver.sys
    signtool sign /v /fd SHA256 /f "YourCertificate.pfx" /p "YourPassword" /t http://timestamp.digicert.com VirtualCamMFT.dll
  3. Create catalog file (for Windows Hardware Lab Kit compatibility):

    inf2cat /driver:. /os:10_X64
    signtool sign /v /fd SHA256 /f "YourCertificate.pfx" /p "YourPassword" VirtualCamDriver.cat

Option C: Disable Driver Signature Enforcement (NOT RECOMMENDED)

⚠️ Warning: This disables a critical security feature. Only use for temporary testing on isolated test machines.

# Temporary disable (one-time boot)
# Restart β†’ Press F8 β†’ Select "Disable Driver Signature Enforcement"

# Or use bcdedit (requires restart)
bcdedit /set nointegritychecks on

Step 3: Install the Driver

Automated Installation (Easiest) ⭐

  1. Copy installation files to a folder:

    • VirtualCamDriver.sys
    • VirtualCamMFT.dll
    • VirtualCamDriver.inf
    • install.bat (from repository root)
  2. Run install.bat as Administrator:

    Right-click install.bat β†’ "Run as administrator"
  3. Follow the prompts:

    • The script will check for test signing
    • Install the driver using PnPUtil
    • Register the MFT DLL
    • Verify the installation

Manual Installation

  1. Copy files to a deployment folder:

    mkdir C:\VirtualCamDriver
    copy VirtualCamDriver.sys C:\VirtualCamDriver\
    copy VirtualCamMFT.dll C:\VirtualCamDriver\
    copy VirtualCamDriver.inf C:\VirtualCamDriver\
    cd C:\VirtualCamDriver
  2. Install driver package:

    # Open Command Prompt as Administrator
    pnputil /add-driver VirtualCamDriver.inf /install
  3. Register the MFT:

    regsvr32 VirtualCamMFT.dll

Step 4: Verify Installation

Option A: Run Automated Verification ⭐

# Run from the directory containing verify.bat
verify.bat

This will check:

  • Test signing status
  • Driver package installation
  • Device presence in system
  • MFT registration
  • Camera interface configuration
  • Device class settings
  • Recent error logs

Option B: Manual Verification

  1. Check Device Manager:

    # Open Device Manager
    devmgmt.msc
    • Look for "Virtual Camera Driver for Windows Hello"
    • Should be under "Cameras" category (not "System devices")
    • No yellow warning (!) or red X icons
    • Right-click β†’ Properties β†’ Status should say "This device is working properly"
  2. Verify driver in PnPUtil:

    pnputil /enum-drivers | findstr /i "VirtualCam"
  3. Check MFT registration:

    reg query "HKLM\SOFTWARE\Classes\MediaFoundation\Transforms\{E8F8E8E8-E8E8-E8E8-E8E8-E8E8E8E8E8E8}"
  4. Verify camera interface:

    reg query "HKLM\SYSTEM\CurrentControlSet\Control\DeviceClasses\{e5323777-f976-4f5b-9b55-b94699c46e44}" | findstr /i "VirtualCam"

Step 5: Test with Windows Hello

Note: Full Windows Hello functionality requires implementing actual camera stream capture, which is the next development phase.

  1. Open Windows Hello Settings:

    Settings β†’ Accounts β†’ Sign-in options β†’ Facial recognition (Windows Hello)
    
  2. Expected behavior (with current implementation):

    • The device should appear in Device Manager as a camera
    • Windows Hello may detect the camera device
    • Full enrollment requires implementing the stream capture in the driver
  3. For complete Windows Hello support, the following features need implementation:

    • Physical camera stream capture
    • RGB to IR stream simulation
    • Multi-stream support (RGB + IR)
    • Proper frame rate and resolution handling

πŸ”§ Troubleshooting

Driver Installation Issues

Error: "The hash for the file is not present in the specified catalog file"

Solution: Enable test signing or use a valid production certificate

bcdedit /set testsigning on
shutdown /r /t 0

Error: "Windows cannot verify the digital signature for this file"

Solution:

  1. Check that test signing is enabled: bcdedit /enum {current}
  2. Verify driver is signed: signtool verify /pa VirtualCamDriver.sys
  3. Ensure certificate is in the trusted root store

Error: "Device cannot start (Code 10)"

Solutions:

  1. Check Event Viewer for details:
    eventvwr.msc β†’ Windows Logs β†’ System
  2. Review setup log:
    type %SystemRoot%\INF\setupapi.dev.log | findstr /i "virtualcam"
  3. Verify KMDF co-installer is available (included in WDK)

Windows Hello Not Detecting Camera

  1. Verify device is under "Cameras" in Device Manager (not "System devices")
  2. Check SignatureAttributes in INF:
    • Open VirtualCamDriver.inf
    • Ensure SignatureAttributes.WindowsHello section exists
  3. Verify MFT CLSID registration:
    reg query "HKLM\SOFTWARE\Classes\MediaFoundation\Transforms\{E8F8E8E8-E8E8-E8E8-E8E8-E8E8E8E8E8E8}"

Build Errors

Error: "WDK not found" or "KMDF.lib not found"

Solution: Install Windows Driver Kit (WDK) matching Visual Studio 2022

Error: "Cannot find mfplat.lib"

Solution: Install Windows SDK 10.0.22000 or later

Error: "KMDF version mismatch"

Solution: Update $KMDFVERSION$ in INF to match installed WDK version


πŸ—‘οΈ Uninstallation

Automated Uninstall (Easiest)

# Run as Administrator
uninstall.bat

Manual Uninstall

  1. Remove device:

    devcon remove Root\VirtualCamDriver
  2. Unregister MFT:

    regsvr32 /u VirtualCamMFT.dll
  3. Delete driver package:

    # Find OEM INF number
    pnputil /enum-drivers | findstr /i "VirtualCam"
    
    # Delete (replace oemXX.inf with actual name)
    pnputil /delete-driver oemXX.inf /uninstall
  4. Restart computer to complete removal


πŸ“š Additional Documentation

For more detailed information, see:


πŸ”‘ Important Technical Details

Key GUIDs and CLSIDs

Component GUID/CLSID Purpose
Camera Class {ca3e7ab9-b4c3-4ae6-8251-579ef933890f} Windows Camera device class
MFT CLSID {E8F8E8E8-E8E8-E8E8-E8E8-E8E8E8E8E8E8} Media Foundation Transform identifier
Video Camera Interface {E5323777-F976-4f5b-9B55-B94699C46E44} Camera device interface
ProxyVCap {17CCA71B-ECD7-11D0-B908-00A0C9223196} Video capture proxy

Driver Components

VirtualCamDriver (KMDF Kernel Driver)

  • Driver.c: Main entry point, DriverEntry and driver initialization
  • Device.c: Device object creation, PnP power management, and device interfaces
  • Queue.c: I/O request queue creation and handling
  • VirtualCamDriver.inf: Installation file with Camera class, Windows Hello attributes, and registry settings
  • Trace.h: WPP software tracing macros for debugging

VirtualCamMFT (Media Foundation Transform)

  • IMFTransform Interface: Complete implementation for stream processing
    • GetStreamLimits, GetStreamCount, GetInputStreamInfo, GetOutputStreamInfo
    • AddInputStreams, DeleteInputStream, GetInputStreamAttributes
    • GetInputAvailableType, GetInputCurrentType, SetInputType
    • GetOutputAvailableType, GetOutputCurrentType, SetOutputType
    • GetInputStatus, GetOutputStatus, SetOutputBounds
    • ProcessEvent, ProcessMessage, ProcessInput, ProcessOutput
  • COM Infrastructure: Class factory, DllGetClassObject, DllRegisterServer, DllUnregisterServer
  • Media Type Support: RGB24, YUY2 video formats (extensible)
  • Extensible Design: Ready for custom processing (AI/ML, IR simulation, enhancement)

πŸ” Windows Hello Integration

The driver is configured for Windows Hello facial recognition compatibility through multiple integration points:

1. Camera Device Class Configuration

  • Class GUID: {ca3e7ab9-b4c3-4ae6-8251-579ef933890f} (Camera class)
  • Ensures Windows recognizes the device as a camera, not a generic system device
  • Required for appearing in camera-specific APIs and applications

2. Signature Attributes for Windows Hello

[SignatureAttributes]
VirtualCamDriver.sys = SignatureAttributes.WindowsHello
VirtualCamMFT.dll = SignatureAttributes.WindowsHello

[SignatureAttributes.WindowsHello]
WindowsHello = true
  • Marks the driver and MFT as Windows Hello-compatible
  • Enables biometric framework integration
  • Allows the device to appear in Windows Hello setup

3. Media Foundation Transform (MFT) Association

  • MFT CLSID: {E8F8E8E8-E8E8-E8E8-E8E8-E8E8E8E8E8E8}
  • Registered via INF: HKR,,CameraDeviceMFTCLSID,0x00000000,"{E8F8E8E8-...}"
  • Links stream processing to the camera device
  • Handles frame transformation and processing

4. Camera Interface Registration

  • Interface GUID: {E5323777-F976-4f5b-9B55-B94699C46E44} (Video camera interface)
  • Enables enumeration by camera applications
  • Required for Windows Camera app and other media applications

5. Multi-Stream Support (Future Implementation)

For full Windows Hello face authentication, the driver will need:

  • RGB Stream: Color video for visual feedback (standard webcam feed)
  • IR Stream: Infrared simulation for liveness detection (prevents photo spoofing)
  • Both streams synchronized with proper timestamps and metadata

πŸ§ͺ Development & Testing Workflow

Development Cycle

  1. Make code changes in Visual Studio
  2. Build the solution (Ctrl+Shift+B)
  3. Sign binaries with test certificate
  4. Uninstall old version: Run uninstall.bat
  5. Install new version: Run install.bat
  6. Verify installation: Run verify.bat
  7. Test functionality in Device Manager or Windows Hello
  8. Check logs if issues occur:
    • Event Viewer: eventvwr.msc β†’ Windows Logs β†’ System
    • Setup Log: %SystemRoot%\INF\setupapi.dev.log

Debug with WPP Tracing

Enable detailed driver logging:

# Start tracing session
traceview -start VirtualCamTrace -guid {YOUR-TRACE-GUID} -f trace.etl -level 4

# Reproduce the issue

# Stop tracing
traceview -stop VirtualCamTrace

# View trace file
tracefmt trace.etl

Testing on Virtual Machine (Recommended)

Benefits of VM testing:

  • Safe environment for testing driver changes
  • Easy snapshots and rollback
  • Isolated from main development system
  • Can test on clean Windows installations

Recommended setup:

  • VMware Workstation or Hyper-V
  • Windows 10/11 x64 guest OS
  • Test signing enabled in guest
  • Shared folder for transferring driver files

πŸš€ Future Development Roadmap

Phase 1: Camera Stream Implementation (Next)

  • Implement actual camera frame capture in KMDF driver
  • Connect to physical webcam device
  • Handle USB video class (UVC) protocol
  • Implement proper buffer management
  • Add frame rate and resolution control

Phase 2: IR Stream Simulation

  • RGB to grayscale conversion in MFT
  • Contrast enhancement for IR simulation
  • Multi-stream output (RGB + simulated IR)
  • Stream synchronization

Phase 3: Windows Hello Testing

  • Test face enrollment process
  • Verify authentication works
  • Test liveness detection
  • Ensure anti-spoofing measures

Phase 4: AI/ML Integration (Optional)

  • Integrate ONNX Runtime
  • Add face detection model
  • Implement liveness detection
  • Performance optimization
  • GPU acceleration support

Phase 5: Production Release

  • Obtain EV code signing certificate
  • Create production build and sign all binaries
  • Package installer (MSI or setup.exe)
  • Create user documentation
  • Optional: WHQL certification submission

πŸ’‘ Tips & Best Practices

For Developers

  1. Always test in a VM first - Kernel drivers can cause BSODs if buggy
  2. Keep test signing enabled during development - Saves time re-signing
  3. Use WPP tracing liberally - Invaluable for debugging driver issues
  4. Monitor Event Viewer - Catches driver loading errors early
  5. Version your builds - Update version in INF file with each significant change
  6. Backup your test certificate - You'll need it to sign future builds

For Users

  1. Read all documentation first - Especially certificate signing requirements
  2. Use automated scripts - install.bat, verify.bat, uninstall.bat handle complexity
  3. Check Device Manager after install - Verify no yellow warnings
  4. Restart after enabling test signing - Required for changes to take effect
  5. Keep setup logs - Helpful if you need to troubleshoot
  6. Don't disable security features permanently - Use test signing only when needed

Common Mistakes to Avoid

  • ❌ Forgetting to enable test signing before installation
  • ❌ Not signing both the .sys and .dll files
  • ❌ Mixing x64 and ARM64 binaries
  • ❌ Installing on the same machine you're developing on (use a VM)
  • ❌ Skipping the verification step after installation
  • ❌ Not checking Event Viewer when things fail

🀝 Contributing

Contributions are welcome! Here's how you can help:

Areas for Contribution

  • Camera Stream Capture: Implement physical camera integration
  • IR Simulation: Enhance the IR stream generation algorithm
  • Testing: Test on various hardware configurations and Windows versions
  • Documentation: Improve guides, add troubleshooting tips, translate
  • Bug Fixes: Fix issues and improve stability
  • Features: Add new capabilities (AI integration, multiple stream sources, etc.)

Contribution Guidelines

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature/your-feature-name
  3. Make your changes with clear, descriptive commits
  4. Test thoroughly on a clean VM
  5. Update documentation if adding new features
  6. Submit a pull request with detailed description

Code Style

  • Follow existing code formatting
  • Add comments for complex logic
  • Use WPP tracing for debug output (not DbgPrint)
  • Keep functions focused and modular
  • Handle all error cases gracefully

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

Summary: You are free to use, modify, and distribute this software for any purpose, including commercial applications. Attribution is appreciated but not required.


⚠️ Disclaimer

This project is for educational and research purposes.

  • This software emulates camera hardware capabilities to enable Windows Hello on non-certified devices
  • Developed for learning about Windows driver development, Media Foundation, and biometric systems
  • Users are responsible for compliance with local laws and regulations
  • No warranty is provided - use at your own risk
  • Always test in isolated environments (VMs) before deployment
  • The authors are not responsible for any damage or data loss

Security Note: While this driver enables Windows Hello face authentication, true biometric security requires specialized hardware (IR cameras, depth sensors) that can detect liveness and prevent spoofing. This implementation is a proof-of-concept.


πŸ“ž Support & Contact

Getting Help

  • Documentation: Check the /Documentation folder for detailed guides
  • Issues: Report bugs or request features on GitHub Issues
  • Discussions: Ask questions in GitHub Discussions

Useful Resources


πŸŽ“ Learning Resources

If you're new to Windows driver development or want to learn more:

Windows Driver Development

Media Foundation

Windows Hello & Biometrics


🌟 Acknowledgments

This project was inspired by:

  • Microsoft's Windows Driver Samples
  • Intel RealSense SDK architecture
  • Community contributions to Windows driver development
  • Real-world biometric camera implementations

Special thanks to:

  • The Windows Driver Development community
  • Microsoft documentation team
  • Open-source contributors who share knowledge

πŸ“Š Project Statistics

  • Total Lines of Code: ~1,500 lines (Driver + MFT)
  • Languages: C (KMDF Driver), C++ (MFT)
  • Supported Platforms: x64, ARM64
  • Windows Versions: Windows 10 (1903+), Windows 11
  • Development Time: Multiple development phases
  • Current Status: Core infrastructure complete, ready for stream implementation

Last Updated: October 2025
Version: 1.0-beta
Project Status: Core Implementation Complete - Ready for Testing Phase πŸš€


Made with ❀️ for Windows driver development enthusiasts and biometric security researchers

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •