How is the bthkd extension library used under WinDbg?

I am trying to use the !bthtree
command to dump the complete Bluetooth device tree as specified from the !bthhelp
command.
WinDbg is running and is attached to a svchost.exe process that imports several Bluetooth DLLs:
- svchost.exe (1808) | DLL | C:\Windows\System32\bthserv.dll
- svchost.exe (1808) | DLL | C:\Windows\System32\BthTelemetry.dll
- svchost.exe (1808) | DLL | C:\Windows\System32\Microsoft.Bluetooth.Service.dll
- svchost.exe (1808) | DLL | C:\Windows\System32\Microsoft.Bluetooth.Proxy.dll
- svchost.exe (1808) | DLL | C:\Windows\System32\Windows.Internal.Devices.Bluetooth.dll
Using the !bthkd.bthtree
command results in the following message:
Controller: Failed to read list of device objects.
BTHENUM: Error: Unable to read BTHENUM!BthEnumGlobals Unable to find driver object
RFCOMM: 00000000: Unable to get value of ObpRootDirectoryObject Error: Unable to read rfcomm!g_DriverObject
ENUMERATED DEVICES: Error: Unable to read BTHENUM!BthEnumGlobals Unable to find driver object
Sadly the other !bthkd
commands (such as !hcicmd
, !bthenuminfo
) also fail in a similar manner. WinDbg is debugging the target process locally.
Unfortunately, the documentation (bthkd) does not really provide much additional information on how to use the bthkd extensions.