A couple more minor things I noticed in the latest revision:
``` +static INT bth_lookup_devices( const BLOB *blob, DWORD flags, struct ws_bth_query_device *query ) ```
We're plumbing "blob" all the way down to this function and then never using it. It should be left out until its future use, if there is one.
``` + if (query->list) + free( query->list ); ```
No need for the 'if' here.