Como posso carregar / descarregar manualmente um driver no Windows Vista?

5

Acho que um dos meus drivers está fazendo com que algumas das máquinas do meu Windows Vista inicializem muito devagar. Como o log do perf não é basicamente uma ajuda, quero tentar descarregar / carregar manualmente os drivers para ver se algum tempo é necessário para inicializar. Como posso fazer isso?

    
por Dane O'Connor 28.06.2009 / 23:22

3 respostas

4

Drivers e Serviços têm uma interface de controle muito similar no Windows. Você pode definir o valor "Start" em sua entrada em HKEY_LOCAL_MACHINE \ System \ CurrentControlSet \ Services como "Disabled", reinicializar e ver como a máquina faz o boot sem o driver carregando.

Para descobrir o nome do "Serviço" para um determinado driver, examine a guia "Detalhes" do dispositivo em "Gerenciador de dispositivos" e examine a entrada "Serviço". Depois de ter isso, você pode gravar o status atual de inicialização do driver, examinando o valor "Iniciar" na chave do driver sob a chave "Serviços" que mencionei anteriormente. Altere o valor "Start" para 4 para desativar o driver na inicialização subseqüente. (E mude de volta para o que você encontrou quando terminar de testar!)

Você poderia certamente fazer o script dessa alteração usando o programa REG de linha de comando. Este script CMD abaixo alteraria o tipo "Iniciar" para o nome do serviço transmitido na linha de comando para desativado após exibir o tipo de início atual:

@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

Você pode ter alguma sorte em descobrir o que o driver está fazendo usando a funcionalidade de registro de inicialização "Process Monitor" também.

    
por 29.06.2009 / 00:59
1

Colocar meu snippet rápido e sujo sobre o utilitário "devcon". Eu usei isso com drivers Ultrium, mas funciona com qualquer outro. Não tenho certeza se funciona no 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
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%pre%00 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
00 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
    
por 29.06.2009 / 13:18
-1

Removendo o driver:

  • Iniciar > Painel de controle > Sistema > Gerenciador de dispositivos > Localizar dispositivo > Clique com o botão direito > Desinstalar

Como carregar o driver:

  • Iniciar > Painel de controle > Sistema > Gerenciador de dispositivos > Localizar dispositivo > Clique com o botão direito > Atualize o software do driver
por 28.06.2009 / 23:39