如何在 Windows Vista 中手动加载/卸载驱动程序?

如何在 Windows Vista 中手动加载/卸载驱动程序?

我认为我的某个驱动程序导致我的某些 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

删除驱动程序:

  • 开始 > 控制面板 > 系统 > 设备管理器 > 定位设备 > 右键单击​​ > 卸载

正在加载驱动程序:

  • 开始 > 控制面板 > 系统 > 设备管理器 > 定位设备 > 右键单击​​ > 更新驱动程序软件

相关内容