A Windows virtual display driver to add multiple virtual monitors to your PC! For Win10+. Works with VR, obs, streaming software, etc
Rust
900
781 commits
updated Mar 3, 2025
This is a Windows driver made in Rust which creates a virtual desktop.
It has many uses, such as:
Supports: Windows 10 2004+ (x64 only)
For any bug reports, please see the debugging or reporting crashes section to get the panic message for the bug report
Note: For users having trouble installing/running the app, please see #49
install.regActions -> Add legacy hardwareInstall hardware that I manually select from a listHave Disk... and select the folder with the driver files in itnefcon CLIinstall.regnefconc CLInefconc.exe in the extracted portable folder.\nefconc.exe --remove-device-node --hardware-id Root\VirtualDisplayDriver --class-guid "4D36E968-E325-11CE-BFC1-08002BE10318"
.\nefconc.exe --create-device-node --class-name Display --class-guid "4D36E968-E325-11CE-BFC1-08002BE10318" --hardware-id Root\VirtualDisplayDriver
.\nefconc.exe --install-driver --inf-path ".\VirtualDisplayDriver.inf"
You can also completely uninstall the driver only by executing the first command:
.\nefconc.exe --remove-device-node --hardware-id Root\VirtualDisplayDriver --class-guid "4D36E968-E325-11CE-BFC1-08002BE10318"
The certificate needs installation for Windows to accept the driver
DriverCertificate.cer and install-cert.batinstall-cert.bat* If the certificate didn't install properly, then the driver won't install. If driver installation fails, this is most likely the reason why; and you should check that the certificate is actually installed. Try manually running the commands in the install-cert.bat file (below) in an admin cmd prompt to make sure the certificate is installed correctly (for both root and TrustedPublisher stores). The commands will tell you if they successfully added it or not.
certutil -addstore -f root "DriverCertificate.cer"
certutil -addstore -f TrustedPublisher "DriverCertificate.cer"
You can also search for Manage Computer Certificates, look in Trusted Publishers and Trusted Root Certification, you will see the certificate named DriverCertficate.
You can manually import it by right clicking on the menu entry -> All Tasks -> Import, and following the instructions in the import wizard
Why is it so difficult? The reason I didn't add auto certificate installation is because I believe certificates are a personal thing, and should not be added automatically without the users knowledge.
Please see the wiki for instructions on using the app.
Desktop development with C++ workload as well as Windows SDKcargo-make if you don't have itcargo-target-dirMake sure you generate your own windows code signing cert and install it according to "Installing the certificate" section.
You can build it with cargo make build (debug) or cargo make -p prod build (release), and check the target/output directory for all the files
To build the installer, do a cargo make build-installer (dev) or cargo make -p prod build-installer (release). In order to build the installer, you need wix toolset installed and on Path
... Or, fork my project and build it with github actions. You will require 2 repository secrets:
PRIVATE_KEY - a windows code signing pfx certificate encoded in base64 (use certutil -encode)PRIVATE_KEY_PASSWORD - self explanatoryIf you want to debug a problem or need to report a crash, follow the below instructions:
All messages from the driver are logged in the Windows Event Viewer.
Windows Logs -> ApplicationVirtualDisplayDriverIf you want to make them easier to see
Custom Views
Create Custom View...
By sourceVirtualDisplayDriver in the list, then press OkVirtualDisplayDriver for the name, and press OkCustom Views section for VirtualDisplayDriverIf you're using a driver compiled in debug mode, you can see panic messages and other information in a live logger: download DebugViewPP, run it, click on Log->Capture Global Win32 (note, this requires DebugViewPP be run with admin permissions). As long as the program is open and capturing, the messages will appear live as they are logged. This is a bit easier to use than the event log when you are trying to debug something.
All contributions are welcome!
For first time contributors, please read our contributing guide.
You are welcome to use this project in your own projects.
If you do so, please contribute back to the main project with your code changes, and even by sponsoring. Every little bit helps us make an even better project. We appreciate it, thank you!
If you have any questions, need support, need to collaborate on development, or any other use-case, you may join our discord server (see related #virtual-display-driver channels). This is the quickest and easiest way to communicate.
You may also post in the project discussion section. Though note that using the discord channel will get your messages seen and responded to quicker.
If this project has helped you, or you want to say thanks and help continued development, sponsorships are very welcome. ❤️
512 followers · starred Sep 2025
178 followers · starred Feb 2024
57 followers · starred Nov 2023
12 followers · starred Sep 2023
Rust
92.6%
C#
7.3%
A Windows virtual display driver to add multiple virtual monitors to your PC! For Win10+. Works with VR, obs, streaming software, etc
Rust
900
781 commits
updated Mar 3, 2025
This is a Windows driver made in Rust which creates a virtual desktop.
It has many uses, such as:
Supports: Windows 10 2004+ (x64 only)
For any bug reports, please see the debugging or reporting crashes section to get the panic message for the bug report
Note: For users having trouble installing/running the app, please see #49
install.regActions -> Add legacy hardwareInstall hardware that I manually select from a listHave Disk... and select the folder with the driver files in itnefcon CLIinstall.regnefconc CLInefconc.exe in the extracted portable folder.\nefconc.exe --remove-device-node --hardware-id Root\VirtualDisplayDriver --class-guid "4D36E968-E325-11CE-BFC1-08002BE10318"
.\nefconc.exe --create-device-node --class-name Display --class-guid "4D36E968-E325-11CE-BFC1-08002BE10318" --hardware-id Root\VirtualDisplayDriver
.\nefconc.exe --install-driver --inf-path ".\VirtualDisplayDriver.inf"
You can also completely uninstall the driver only by executing the first command:
.\nefconc.exe --remove-device-node --hardware-id Root\VirtualDisplayDriver --class-guid "4D36E968-E325-11CE-BFC1-08002BE10318"
The certificate needs installation for Windows to accept the driver
DriverCertificate.cer and install-cert.batinstall-cert.bat* If the certificate didn't install properly, then the driver won't install. If driver installation fails, this is most likely the reason why; and you should check that the certificate is actually installed. Try manually running the commands in the install-cert.bat file (below) in an admin cmd prompt to make sure the certificate is installed correctly (for both root and TrustedPublisher stores). The commands will tell you if they successfully added it or not.
certutil -addstore -f root "DriverCertificate.cer"
certutil -addstore -f TrustedPublisher "DriverCertificate.cer"
You can also search for Manage Computer Certificates, look in Trusted Publishers and Trusted Root Certification, you will see the certificate named DriverCertficate.
You can manually import it by right clicking on the menu entry -> All Tasks -> Import, and following the instructions in the import wizard
Why is it so difficult? The reason I didn't add auto certificate installation is because I believe certificates are a personal thing, and should not be added automatically without the users knowledge.
Please see the wiki for instructions on using the app.
Desktop development with C++ workload as well as Windows SDKcargo-make if you don't have itcargo-target-dirMake sure you generate your own windows code signing cert and install it according to "Installing the certificate" section.
You can build it with cargo make build (debug) or cargo make -p prod build (release), and check the target/output directory for all the files
To build the installer, do a cargo make build-installer (dev) or cargo make -p prod build-installer (release). In order to build the installer, you need wix toolset installed and on Path
... Or, fork my project and build it with github actions. You will require 2 repository secrets:
PRIVATE_KEY - a windows code signing pfx certificate encoded in base64 (use certutil -encode)PRIVATE_KEY_PASSWORD - self explanatoryIf you want to debug a problem or need to report a crash, follow the below instructions:
All messages from the driver are logged in the Windows Event Viewer.
Windows Logs -> ApplicationVirtualDisplayDriverIf you want to make them easier to see
Custom Views
Create Custom View...
By sourceVirtualDisplayDriver in the list, then press OkVirtualDisplayDriver for the name, and press OkCustom Views section for VirtualDisplayDriverIf you're using a driver compiled in debug mode, you can see panic messages and other information in a live logger: download DebugViewPP, run it, click on Log->Capture Global Win32 (note, this requires DebugViewPP be run with admin permissions). As long as the program is open and capturing, the messages will appear live as they are logged. This is a bit easier to use than the event log when you are trying to debug something.
All contributions are welcome!
For first time contributors, please read our contributing guide.
You are welcome to use this project in your own projects.
If you do so, please contribute back to the main project with your code changes, and even by sponsoring. Every little bit helps us make an even better project. We appreciate it, thank you!
If you have any questions, need support, need to collaborate on development, or any other use-case, you may join our discord server (see related #virtual-display-driver channels). This is the quickest and easiest way to communicate.
You may also post in the project discussion section. Though note that using the discord channel will get your messages seen and responded to quicker.
If this project has helped you, or you want to say thanks and help continued development, sponsorships are very welcome. ❤️
512 followers · starred Sep 2025
178 followers · starred Feb 2024
57 followers · starred Nov 2023
12 followers · starred Sep 2023
Rust
92.6%
C#
7.3%