我认为我的某个驱动程序导致我的某些 Windows Vista 计算机启动速度极慢。由于 perf 日志基本上没有帮助,我想尝试手动卸载/加载驱动程序,看看是否有驱动程序需要相当长的时间才能启动。我该怎么做?
答案1
在 Windows 中,驱动程序和服务的控制界面非常相似。您可以将 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services 中它们的条目上的“Start”值设置为“Disabled”,然后重新启动,并查看机器在没有加载该驱动程序的情况下如何启动。
要查找给定驱动程序的“服务”名称,请检查“设备管理器”中设备的“详细信息”选项卡,然后查看“服务”条目。找到该条目后,您可以通过检查我之前提到的“服务”键下驱动程序键中的“启动”值来记录驱动程序的当前启动状态。将“启动”值更改为 4 以在后续启动时禁用该驱动程序。(并在完成测试后将其改回您找到的值!)
您当然可以使用命令行 REG 程序编写此更改脚本。下面的 CMD 脚本将在显示当前启动类型后,将命令行上传递的服务名称的“启动”类型更改为禁用:
@echo off
if "%1"=="" goto syntax
reg query "HKLM\System\CurrentControlSet\Services\%1" /v Start > NUL 2>NUL
if errorlevel 1 goto no_service
echo Current Start setting for service "%1":
reg query "HKLM\System\CurrentControlSet\Services\%1" /v Start | find /i "Start"
reg add "HKLM\System\CurrentControlSet\Services\%1" /v Start /t REG_DWORD /d 4 /f > NUL 2> NUL
echo Service "%1" set to Disbled.
goto end
:no_service
echo The service specified, "%1" was not found!
goto end
:syntax
echo %0 service_name_to_disable
:end
您可能还会幸运地通过使用“进程监视器”启动日志功能弄清楚驱动程序正在做什么。
答案2
粘贴我关于“devcon”实用程序的快速而粗略的代码片段。我将其用于 Ultrium 驱动程序,但可用于任何其他驱动程序。不确定它是否适用于 Vista:
http://support.microsoft.com/default.aspx?scid=kb;EN-US;Q311272 # download devcon
# For device (status)
devcon driverfiles *Ultrium*
devcon drivernodes *Ultrium*
devcon find *Ultrium* # also remote -m:\\machine
devcon findall *Ultrium* # w/removed # also remote -m:\\machine
devcon hwids *Ultrium* # also remote -m:\\machine
devcon resources *Ultrium* # also remote -m:\\machine
devcon stack *Ultrium* # also remote -m:\\machine
devcon status *Ultrium*
# For device (disruptive):
devcon help disable *Ultrium*
devcon help enable *Ultrium*
devcon help restart *Ultrium*
devcon help sethwid *Ultrium* # also remote -m:\\machine
devcon help rescan
# For device (disruptive)
devcon help install <file.inf> <hwid> # give it *exact* hwid as in inf file; if failed will install NULL driver, remove it
# *DEFUNCT* for tape: becomes ROOT\TAPEDRIVE\0000 instead SCSI\VENDOR_MODEL
devcon help update # forces use of driver, even if better is already on the system (4 unsigned drivers).
devcon help updateni
devcon help remove # this will remove device (DevMgmt->Uninstall), not uninstall driver!
# For classes
devcon help classes # also remote -m:\\machine
devcon help listclass # also remote -m:\\machine
# For machine
devcon reboot # also remote -m:\\machine
答案3
删除驱动程序:
- 开始 > 控制面板 > 系统 > 设备管理器 > 定位设备 > 右键单击 > 卸载
正在加载驱动程序:
- 开始 > 控制面板 > 系统 > 设备管理器 > 定位设备 > 右键单击 > 更新驱动程序软件