I recently splashed out on a new Microsoft Bluetooth mouse, very nice and I (foolishly) just expected it to plug in and work..

I’m running XP SP2 as you’d expect which has got built-in support for Bluetooth and for my other Bluetooth devices seems to work just fine.  The Bluetooth stack detected the mouse but when I tried to enable the “Drives for keyboard, mice, etc (HID)” feature it came up with “Access is denied”  (Although it worked just fine on another SP2 box)

I trawled all of the internal resources and found nothing useful and when I was about to give up I remembered RegMon from SysInternals.

Five minutes later I had spotted that the svchost process was getting an ACCDENIED when trying to create a key under this registry location:

   HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\BTHPORT\Parameters\Devices

RegEdit showed that a number of accounts had permissions to the key, however I couldn’t work out from the RegMon log alone which account SVCHOST was using, so I go through the Bluetooth enabling thing again this time with Process Explorer which allowed me to see the process and work out the account it was running under, LOCAL SERVICE in this case.

I gave LOCAL SERVICE access to the registry key and hey presto the Bluetooth mouse works a treat when I enable the HID feature!!!

SysInternals and Process Explorer/RegMon are absolutely fantastic – if you haven’t seen the tools before go and get them now!!!  They are ideal for troubleshooting nasty problems like this, Process Explorer now has Symbol Server support and allows you to peek inside processes and see what the threads are doing without having to reach for WinDbg