How is the bthkd extension library used under WinDbg?

Tony Nguyen 1 Reputation point
2022-08-23T14:50:25.173+00:00

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.

Windows Hardware Performance
Windows Hardware Performance
Windows: A family of Microsoft operating systems that run across personal computers, tablets, laptops, phones, internet of things devices, self-contained mixed reality headsets, large collaboration screens, and other devices.Hardware Performance: Delivering / providing hardware or hardware systems or adjusting / adapting hardware or hardware systems.
1,541 questions
Windows 11
Windows 11
A Microsoft operating system designed for productivity, creativity, and ease of use.
8,107 questions
0 comments No comments
{count} votes