Monday, October 1, 2012

Windows 2012 / 8 HID Service and Fancy Keyboards

After a catastrophic crash of my Windows 2008 R2 server, read I screwed up a BIOS update *sigh*,  I migrated my OS to Windows 2012.  The install of the Desktop experience was fairly straight forward, very similar to the procedure for Windows 2008, the only gotcha involved was finding the feature (it's under the User Interfaces and Infrastructure heading).

The big gotcha so far has been with my fancy keyboard. I have a Microsoft Natural Ergonomic Keyboard.  It is awesome.  Not only is it nice on the wrists, but it has handy dandy hot buttons that control volume, mute, launches the calculator, and other programmable buttons.  They are really handy.  BUT they didn't work after I migrated.

Everything I checked seemed to be working well, correct drivers were installed, nothing funny going on in the  event logs, the buttons just didn't work.

I then looked a bit harder at what showed up in the Device Manager:

HID keyboard...  Hummm....  There was a service in Windows 2008 that was HID.  In Windows 2012 the service is, Human Interface Device Access service.


As soon as I started that guy, all of the little buttons started to work.  An easy fix, but a necessary one if you have anything on Windows 2012 that has extras, you will need to start this service.  What is the service?  From Microsoft:
Enables generic input access to Human Interface Devices (HID), which activates and maintains the use of predefined hot buttons on keyboards, remote controls, and other multimedia devices. If this service is stopped, hot buttons controlled by this service will no longer function. If this service is disabled, any services that explicitly depend on it will fail to start.

So... The default in Windows 2012 is that this service is set to Manual(Trigger Start) so if your device does not have software to trigger this service, like my you will need to start it manually. I set my service to start automatically, so that I won't loose my buttons when I restart the server.