最近,打算在安装了 Windows 8 的台式机上使用蓝牙鼠标,因此把公司送的迷你蓝牙接收器插到USB接口,本以为直接就可以使用了,却半天没有任何反应,只闻设备插拔的叮咚声。
小提示:以下图片如看不清楚,可以点击图片放大!
打开设备管理器,发现蓝牙接收器驱动根本就没有撞上,显示为未知设备:
这个接收器几个月前曾经在这台电脑上使用过,应该不会有什么问题的,而且 Windows 8 对蓝牙的支持肯定是不错的,就算没有内置驱动,在连接上互联网之后,也可以通过 Windows 更新网站获得额外的驱动程序。为何现在会出现不能自动安装驱动的问题呢?
双击该设备,打开的属性窗口中显示了一个奇怪的提示——“拒绝访问”:
点击“更新驱动程序…”,尝试通过 Windows 更新查找并安装驱动程序,竟然有同样的提示:
这里要介绍一项 Windows 8 设备管理器的新功能,那就是在设备属性中可以直接查看到与该设备相关的系统事件:
在大多数时候,这个事件日志列表可以帮助我们精确的确定设备安装的时间、驱动程序文件、安装结果等详细信息。但在分析了这里之后,并且有找到非常有价值的线索。
类似的“拒绝访问”问题其实之前有遇到过,一般是因为驱动程序安装过程中需要写入的注册表位置无法写入导致的。当然,也不排除有其他的可能。
首先还是从最有可能的地方,即注册表开始排查吧。那如何确定无法写入的注册表项在什么地方呢?
这时候别忘了,除了事件日志以外,Windows 中许多功能还会记录日志文件,通过它们,也许可以找到更有用的信息。
在 Windows 中,安装设备驱动程序的日志文件主要是Windows\Inf 文件夹中的 setupapi.dev.log文件。于是,我在系统中找到这个文件,从后往前慢慢查看,终于看到了一些有价值的内容:
这一部分出现了很多 Access is denied 的记录,记录显示,在写入 HKR\Parameters\Restrictions\COD Major 05 Minor 10\DontAddIncomingSPPInWizard 这个注册表项时,由于拒绝访问而导致驱动程序安装失败了。
至此,问题的主要原因应该是找到了。接下来就该解决问题,验证猜想了。
打开注册表编辑器,准备开始寻找上面的注册表项。可是 HKR 是指哪一个主键呢?没关系,我们可以通过搜索功能,搜索“Restrictions”或“COD Major 05 Minor 10”等内容,从而找到准确位置。
果然,在注册表中找到相应的键值。因为,从上级注册表项的名称“BTHPORT”(蓝牙端口)来看,这一项的确是与蓝牙相关的:
这里需要说明的是,我的还是用的注册表编辑软件不是系统内置的 regedit,而是更加强大的 Registry Workshop。它的强大之处在此就不一一列举了,只需要注意上图中那些红色字体,这样的标记在 Registry Workshop 中就表示这些注册表项当前用户是无权访问的。
|