Posso desinstalar um driver de dispositivo através de uma seção INF?

5

No MSDN , é indicado que existem duas técnicas para instalar arquivos INF no Windows XP ou posterior:

  • Programaticamente por meio da função SetupCopyOEMInf.
  • Adicione uma entrada chamada CopyInf em uma seção INF.

Existe uma entrada equivalente em uma seção inf para desinstalar arquivos inf que é semelhante a SetupUninstallOEMInf função?

Eu encontrei esta solução usando SetupUninstallOEMInf, mas isso não parece adequado para mim.

    
por coelhudo 26.07.2012 / 22:45

2 respostas

1

Bem, isso depende do arquivo .inf (alguns podem não ter nenhuma função de desinstalação), mas você sempre pode tentar um dos seguintes:

rundll32 setupapi.dll,InstallHinfSection DefaultUninstall 132 <driver.inf>

rundll32 advpack.dll,LaunchINFSection <driver.inf>,UnInstall

rundll32 syssetup.dll,SetupInfObjectInstallAction Uninstall.NT 4 <driver.inf>

(Claro, substitua o nome do arquivo, incluindo aspas conforme necessário.)

    
por 26.07.2012 / 23:23
0

Não, os arquivos INF do driver normalmente não apresentam uma seção de desinstalação. De acordo com Como remover arquivos .inf de o sistema e Como Dispositivos e pacotes de driver são desinstalados | Microsoft Docs , DiUninstallDevice e SetupUninstallOEMInf são as maneiras de desinstalar um dispositivo e um pacote de driver, correspondentemente.

No console, você pode chamar o último com devcon de pelo menos a versão 6 (do Windows 8.x DDK; confirmada para funcionar no XP):

devcon [-f] dp_delete oemXXX.inf

( -f força a desinstalação, mesmo que o driver esteja em uso)

Veja Método rápido para instalar o DevCon.exe? como fazer o download do utilitário, se você precisar fazer isso manualmente.

A partir de um pacote de instalação, você precisa usar os recursos fornecidos pela estrutura do instalador que chamaria essa API para você.

    
por 31.12.2017 / 15:41