蓝牙驱动不能正常加载,或者不能正常搜索
[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.csdn.net/u/20100809/17/0435171b-3391-4eca-bfa0-3612acc421a7.html