Debugging Bluetooth profile drivers

While you develop your Bluetooth profile driver, you can use Driver Verifier to assist with its debugging.

To enable the verification check you must enable Driver Verifier for Bthusb.sys. If you do not do this, the verification checks will be disabled.

To utilize the verification checks fully, make sure you use the Bluetooth Request Block (BRB) allocation routines, for example, BthAllocateBrb and BthInitializeBrb, that are provided by the Bluetooth driver stack to build and send BRBs. These routines include additional functionality to help debug profile drivers.

The verification checks can help to catch the following kinds of errors:

  • Attempts to resubmit a BRB before it has been completed

  • Attempts to allocate or initialize an invalid BRB type

  • Attempts to submit a BRB with an invalid size

While debugging your profile driver, you can use the !analyze-v debugger command after a BC_BLUETOOTH_VERIFIER_FAULT to obtain an explanation of the fault.