What Is This Sorcery?
With the release of Windows 10 and Server 2016, Microsoft decided to block keyboard and mouse input on Session 0. So if you have an interactive Windows service running on Session 0, your keyboard and mouse does not work and you will not be able to interact with your application. For more information please refer to our comprehensive discussion on the matter. Additionally, with the release of Windows 10 1803 and Server 2019 Microsoft decided to remove the Interactive Services Detection service entirely.
So, behold, we created FireDaemon ZeroInput. This is a free driver that restores the keyboard and mouse functionality on Session 0 on Windows 10 and Server 2016. The driver also removes the "blacked out" Session 0 desktop on Windows 10 1803 and Server 2019. FireDaemon Zero detects that the driver is present and gives you the ability to not automatically switch back from Session 0 after 30-seconds.
Warning and Disclaimer
By downloading and installing FireDaemon ZeroInput you fully acknowledge that this software modifies the behaviour of your Windows operating system which may result in your operating system ceasing to function normally. As such, you assume all risk and FireDaemon Technologies Limited will not be liable for any loss or damage to your operating system. If you have any doubt whatsoever in regard to the usefulness or fit for purpose of this driver then please, do not use it. Additionally we do not warrant that ZeroInput will continue to work correctly with any future update to Microsoft Windows 10 or Server 2016.
Per the Warning and Disclaimer above, we strongly recommend you try this driver in a disposable virtual machine or similar test environment first to ensure it works and meets your requirements prior to deploying in production.
This driver is for use with Windows 10, Server 2016 or Server 2019 only. It's not required to be deployed on any other version of Windows prior to Windows 10 or Server 2016. Our deployment matrix summarises when and where you should deploy Zero and ZeroInput.
- Ensure you have Windows 10, Server 2016 or Server 2019 installed and that the operating system is fully patched
- Ensure you have a full backup of your operating system such that you can completely restore.
Windows 10 1803 and Server 2019 UI0Detect Service Installation
If you have upgraded to Windows 10 1803 and you already had FireDaemon Zero installed then you may be able to skip this step as the UI0Detect service should have been preserved. So please check to see if the UI0Detect service is present via the following command at an elevated command prompt. If the service does not exist you will get an "OpenService FAILED 1060" error.
sc query UI0Detect
If you have Windows 10 1803 or Server 2019 installed and the UI0Detect service is not present, you will need to setup the Interactive Services Detection Service.
- Login in as a local or domain administrator
- Open an elevated command prompt.
- At the elevated command prompt type the following three commands to re-create the UI0Detect service.
sc create UI0Detect start= auto type= own type= interact error= severe binpath= "C:\Windows\System32\winver.exe" sc sidtype UI0Detect unrestricted sc privs UI0Detect SeTcbPrivilege/SeAssignPrimaryTokenPrivilege/SeIncreaseQuotaPrivilege/SeDebugPrivilege
Note: In the sc create command - we have used winver.exe in the binpath. This is a "stub". sc won't create the service if you supply an invalid binpath. When you install FireDaemon Zero the binpath is updated. Alternately, and if you are feeling really brave, copy over the UI0Detect.exe binary from an earlier version of Windows 10 to C:\Windows\System32. Then adjust the binpath to read "C:\Windows\System32\UI0Detect.exe". If you do this you will be able to start the UI0Detect service and you should be able to switch desktop to Session 0 via the legacy Interactive Services popup.
FireDaemon Zero Installation
If you have Windows 10 1803 or Server 2019 installed, and as a result of the standard UI0Detect binaries being removed from the operating system, you must install FireDaemon Zero. This step is optional on Server 2016 - however, managing Session 0 without FireDaemon Zero is painful. FireDaemon Zero enables interactive services system wide, updates the UI0Detect service to work with the Zero task tray applet plus gives you an easy way to switch back and forth between your logged in user session and Session 0
ZeroInput Driver Installation
- Ensure you are logged in as a local or domain administrator
- Download the ZeroInput driver ZIP file and unpack to a location of your choice
- Determine your machine architecture - either 32-bit or 64-bit
- If you have a 32-bit version of Windows 10 installed copy the file "FDUI0Input.sys" from the x86 folder to C:\Windows\System32\drivers
- If you have a 64-bit version of Windows 10 or Server 2016 installed copy the file "FDUI0Input.sys" from the x64 folder to C:\Windows\System32\drivers
- Open an elevated Windows command prompt
- Put your operating system in Driver Test Signing Mode and install the driver. At the command prompt type the following:
bcdedit /set testsigning on sc create FDUI0Input type= kernel binPath= C:\Windows\System32\drivers\FDUI0Input.sys start= system
- Reboot your machine
- If you have FireDaemon Pro or FireDaemon Zero installed - when you switch to Session 0 - you will find your keyboard and mouse working again on Session 0 on Windows 10, Server 2016 or Server 2019! Cool, eh?
Querying Whether The ZeroInput Driver is Running From FireDaemon Zero
FireDaemon Zero is ZeroInput aware. You can query the running state of the ZeroInput driver by typing the following at an elevated command prompt:
cd C:\Program Files\FireDaemon Zero FDUI0Control query --fdui0input-state
Removing The ZeroInput Driver
Complete the following steps:
- Login as a local or domain administrator
- Open an elevated command prompt.
- At the command prompt type:
sc delete FDUI0Input bcdedit /set testsigning off
If you have Windows 10 1803 installed complete the additional following steps:
- Uninstall FireDaemon Zero
- At the elevated command prompt type:
sc delete UI0Detect
Then reboot you machine.
At this point, the driver uses our DigiCert Authenticode Certificate and, hence, for it to function, you need to place your operating system in test mode. This will leave a watermark on your desktop and operating system in a state where other drivers could be installed surreptitiously. To resolve this the driver needs to be signed with an EV kernel certificate and submitted to the Microsoft Windows Hardware Development Center for counter signing. At this point we don't possess an EV kernel certificate. If you are in possession of your own EV code signing certificate, you are free to re-sign the driver and submit to the Windows Hardware Development Center.
Also, after applying Windows Updates, you might find your machine is no longer in Driver Test Signing Mode. You will have to enable Driver Test Signing Mode again per the instructions above and reboot. No need to reinstall the driver.
Bugs? Issues? Feature Requests?
Tell us what you think! All feedback gratefully received!
The screenshot below shows the driver in action. winver.exe and notepad.exe are being run by FireDaemon Pro. As you can see, it's now possible to interact with the Session 0 desktop, move windows around and type into notepad.exe.