Função DiUninstallDriverW (newdev.h)
A função DiUninstallDriver remove um 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. Em seguida, o pacote de driver especificado é removido do repositório de driver .
Sintaxe
BOOL DiUninstallDriverW(
[in, optional] HWND hwndParent,
[in] LPCWSTR InfPath,
[in] DWORD Flags,
[out, optional] PBOOL NeedReboot
);
Parâmetros
[in, optional] hwndParent
Um identificador para a janela de nível superior que 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, 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, 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.
[out, optional] NeedReboot
Um ponteiro para um valor do tipo BOOL que DiUninstallDriver conjuntos 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, DiUninstallDriver exibirá uma caixa de diálogo de reinicialização do sistema. Para obter mais informações sobre esse parâmetro, consulte a seguinte seção Comentários.
Valor de retorno
DiUninstallDriver retornará verdadeiro se a função remover com êxito o pacote de driver de todos os dispositivos em que está instalado e for removida com êxito do repositório de driver 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 podem 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. |
Observações
Em geral, um aplicativo de desinstalação deve definir NeedReboot para 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 do DiUninstallDriver e, nesse caso, solicitar que o usuário reinicie o sistema após a chamada final para o DiUninstallDriver retorna.
- O aplicativo deve executar as operações necessárias, além de chamar do 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 |
---|---|
de cliente com suporte mínimo | Disponível no Windows 10 Versão 1703 e versões posteriores do Windows. |
da Plataforma de Destino |
Área de trabalho |
cabeçalho | newdev.h (inclua Newdev.h) |
biblioteca | Newdev.lib |
Consulte também
DiUninstallDevice