蓝牙驱动的一些问题

本文介绍了一种通过修改注册表解决蓝牙驱动加载异常的方法。通过调整注册表项Flags的值来控制蓝牙驱动的加载方式,从而实现按需加载蓝牙驱动的目的。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

蓝牙驱动不能正常加载,或者不能正常搜索

[HKEY_LOCAL_MACHINE/Software/Microsoft/Bluetooth/Driver]
  "Dll"="btd.dll"
  "Prefix"="BTD"
  "Index"=dword:0
  "Flags"=dword:2 ; Use LoadLibrary

 

"Dll"="btd.dll"这个DLL应该就是你的蓝牙芯片的驱动,Bthbcsp.dll就是在这个驱动里面动态加载的,
"Flags"=dword:2表示在读注册表时读到这个键值为2,就应该用LoadLibrary这个函数动态加载Bthbcsp.dll。Flags置0,那么LoadLibrary应该禁用了,那你的BCSP应该也没有启动。

 

在系统本来的注册表中有如下信息:
[HKEY_LOCAL_MACHINE/Software/Microsoft/Bluetooth/Driver]
  "Dll"="btd.dll"
  "Prefix"="BTD"
  "Index"=dword:0
  "Flags"=dword:2 ; Use LoadLibrary
现在我修改这里的信息为如下内容:
[HKEY_LOCAL_MACHINE/Software/Microsoft/Bluetooth/Driver]
  "Dll"="btd.dll"
  "Prefix"="BTD"
  "Index"=dword:0
  "Flags"=dword:4 ; Use LoadLibrary
这样,系统启动的时候,这个叫做BTD的驱动就不会加载了,
如后自己指定一个注册表路径内容:
[HKEY_LOCAL_MACHINE/Software/Microsoft/Bluetooth/Dmatek]
  "Dll"="btd.dll"
  "Prefix"="BTD"
  "Index"=dword:0
  "Flags"=dword:2 ; Use LoadLibrary
等系统启动后,在应用中调用:
HANDLE m_hDevice = ActivateDevice (L"Software//Microsoft//Bluetooth//Dmatek", 0);
此时可以正常加载这个驱动,并会得到一个HANDLE,
然后,使用:
DeactivateDevice(m_hDevice);
来卸载这个驱动,

http://topic.youkuaiyun.com/u/20100809/17/0435171b-3391-4eca-bfa0-3612acc421a7.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值