Função DiUninstallDriverA (newdev.h)
A função DiUninstallDriver remove um pacote de driver de todos os dispositivos em que está instalado instalando esses dispositivos com outro pacote de driver correspondente, se disponível, ou o driver nulo se nenhum outro pacote de driver correspondente estiver disponível. Em seguida, o pacote de driver especificado é removido do repositório de driver.
Sintaxe
BOOL DiUninstallDriverA(
[in, optional] HWND hwndParent,
[in] LPCSTR InfPath,
[in] DWORD Flags,
[out, optional] PBOOL NeedReboot
);
Parâmetros
[in, optional] hwndParent
Um identificador para a janela de nível superior que o DiUninstallDriver deve usar para exibir qualquer componente de interface do usuário associado à desinstalação do driver. Esse parâmetro é opcional e pode ser definido como NULL.
[in] InfPath
Um ponteiro para uma cadeia de caracteres terminada em NULL que fornece o caminho totalmente qualificado do arquivo INF para o pacote de driver.
[in] Flags
Um valor do tipo DWORD que especifica zero ou um ou mais dos seguintes sinalizadores: DIURFLAG_NO_REMOVE_INF. Normalmente, esse sinalizador deve ser definido como zero.
Se esse sinalizador for zero, o DiUninstallDriver removerá o pacote de driver de todos os dispositivos em que ele está instalado instalando esses dispositivos com outro pacote de driver correspondente, se disponível, ou o driver nulo se nenhum outro pacote de driver correspondente estiver disponível. No entanto, se esse sinalizador estiver definido como DIURFLAG_NO_REMOVE_INF, o DiUninstallDriver removerá o pacote de driver de todos os dispositivos em que ele está instalado, mas não removerá o pacote de driver do Repositório de Driver.
Para obter informações sobre como o Windows seleciona um pacote de driver para um dispositivo, consulte Como o Windows seleciona drivers.
[out, optional] NeedReboot
Um ponteiro para um valor do tipo BOOL que DiUninstallDriver define para indicar se uma reinicialização do sistema é necessária para concluir a desinstalação. Esse parâmetro é opcional e pode ser NULL. Se o parâmetro for fornecido e uma reinicialização do sistema for necessária para concluir a desinstalação, DiUninstallDriver definirá o valor como TRUE. Nesse caso, o chamador deve solicitar que o usuário reinicie o sistema. Se esse parâmetro for fornecido e uma reinicialização do sistema não for necessária para concluir a desinstalação, DiUninstallDriver definirá o valor como FALSE. Se o parâmetro for NULL e uma reinicialização do sistema for necessária para concluir a desinstalação, o DiUninstallDriver exibirá uma caixa de diálogo de reinicialização do sistema. Para obter mais informações sobre esse parâmetro, consulte a seção Comentários a seguir.
Retornar valor
DiUninstallDriver retornará TRUE se a função remover com êxito o pacote de driver de todos os dispositivos em que ele está instalado e for removido com êxito do repositório de drivers do sistema. Se o pacote de driver não for desinstalado com êxito do repositório de driver, DiUninstallDriver retornará FALSE e o erro registrado poderá ser recuperado fazendo uma chamada para GetLastError. Alguns dos valores de erro mais comuns que GetLastError pode retornar são os seguintes:
Código de retorno | Descrição |
---|---|
|
O chamador não tem privilégios de Administrador. Por padrão, o Windows exige que o chamador tenha privilégios de Administrador para desinstalar um pacote de driver do repositório de driver. |
|
O caminho do arquivo INF especificado não existe. |
|
O valor especificado para Flags não é igual a zero ou DIURFLAG_NO_REMOVE_INF. |
|
O aplicativo de chamada é um aplicativo de 32 bits que está tentando executar em um ambiente de 64 bits, o que não é permitido. Para obter mais informações, consulte Instalando dispositivos em sistemas de 64 bits. |
Comentários
Em geral, um aplicativo de desinstalação deve definir NeedReboot como NULL para direcionar o DiUninstallDriver para solicitar que o usuário reinicie o sistema se for necessária uma reinicialização para concluir a remoção. Um aplicativo deve fornecer um ponteiro NeedReboot somente nos seguintes casos:
- O aplicativo deve chamar DiUninstallDriver várias vezes para concluir uma desinstalação. Nesse caso, o aplicativo deve registrar se um valor TRUENeedReboot é retornado por qualquer uma das chamadas para DiUninstallDriver e, nesse caso, solicitar que o usuário reinicie o sistema após o retorno da chamada final para DiUninstallDriver .
- O aplicativo deve executar as operações necessárias, além de chamar DiUninstallDriver, antes que uma reinicialização do sistema ocorra. Se uma reinicialização do sistema for necessária, o aplicativo deverá concluir as operações necessárias e solicitar que o usuário reinicie o sistema.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Disponível no Windows 10 versão 1703 e versões posteriores do Windows. |
Plataforma de Destino | Área de Trabalho |
Cabeçalho | newdev.h (inclua Newdev.h) |
Biblioteca | Newdev.lib |