The HVDK Drivers
User-mode vs Kernel-mode Drivers
HVDK drivers are User-Mode drivers. A user-mode driver runs in its own private virtual address space, so it runs in isolation from other user-mode applications. A user-mode driver is very much like a regular application like Notepad.exe, except that it is a driver. The advantage user-mode drivers are security (users who install the driver are taking less risk to their system) and stability (if the driver crashes, it doesn’t BSOD your computer, requiring a reboot). And for driver developers, user-mode drivers provide a much easier way to debug the drivers.
Kernel-mode drivers exist in the Windows Kernel virtual address space, so a kernel-mode driver can cause a lot of problems if it crashes or misbehaves.
Read more about User vs Kernel Mode drivers here:
The Driver Files
These files are for the keyboard driver, but the list is more or less the same idea for the other drivers. The following files are included:
- devcon.exe – a Microsoft utility for installing the drivers
- Install.bat – a batch file for installing the drivers. This will attempt to uninstall the drivers first. This must be run as Admin.
- readme.txt – instructions on how to install and uninstall the drivers manually.
- ttcvcontrkb.cat – the security catalog.
- ttcvcontr.dll – the main driver binary.
- ttcvcontr.inf – the driver setup information file. Although this file is editable and unsigned, any changes made here will cause the driver installation to fail. The security catalog file is a compiled version of this file via the Inf2Cat utility in Visual Studio, and if they don’t match, the driver won’t install.
- ttcvcontrollershim.sys – another binary.
- uninstall.bat – a batch file for uninstalling the drivers. This must be run as Admin.
- WudfUpdate_01011.dll – a Microsoft library file.