Función DiUninstallDriverA (newdev.h)
La función DiUninstallDriver quita un paquete de controladores de cualquier dispositivo en el que se instala mediante la instalación de esos dispositivos con otro paquete de controladores coincidente, si está disponible, o el controlador NULL si no hay ningún otro paquete de controladores coincidente disponible. A continuación, el paquete de controladores especificado se quita del almacén de controladores.
Sintaxis
BOOL DiUninstallDriverA(
[in, optional] HWND hwndParent,
[in] LPCSTR InfPath,
[in] DWORD Flags,
[out, optional] PBOOL NeedReboot
);
Parámetros
[in, optional] hwndParent
Identificador de la ventana de nivel superior que DiUninstallDriver debe usar para mostrar cualquier componente de interfaz de usuario asociado a la desinstalación del controlador. Este parámetro es opcional y se puede establecer en NULL.
[in] InfPath
Puntero a una cadena terminada en NULL que proporciona la ruta de acceso completa del archivo INF para el paquete de controladores.
[in] Flags
Valor de tipo DWORD que especifica cero o uno o varios de los siguientes marcadores: DIURFLAG_NO_REMOVE_INF. Normalmente, esta marca debe establecerse en cero.
Si esta marca es cero, DiUninstallDriver quita el paquete de controladores de cualquier dispositivo en el que se instala mediante la instalación de esos dispositivos con otro paquete de controladores coincidente, si está disponible, o el controlador NULL si no hay ningún otro paquete de controladores coincidente disponible. Sin embargo, si esta marca está establecida en DIURFLAG_NO_REMOVE_INF, DiUninstallDriver quita el paquete de controladores de los dispositivos en los que está instalado, pero no quita el paquete de controladores del Almacén de controladores.
Para obtener información sobre cómo Windows selecciona un paquete de controladores para un dispositivo, consulte Cómo Selecciona Windows Controladores.
[out, optional] NeedReboot
Puntero a un valor de tipo BOOL que DiUninstallDriver establece para indicar si se requiere un reinicio del sistema para completar la desinstalación. Este parámetro es opcional y puede ser NULL. Si se proporciona el parámetro y se requiere un reinicio del sistema para completar la desinstalación, DiUninstallDriver establece el valor en TRUE. En este caso, el autor de la llamada debe pedir al usuario que reinicie el sistema. Si se proporciona este parámetro y no es necesario reiniciar el sistema para completar la desinstalación, DiUninstallDriver establece el valor en FALSE. Si el parámetro es NULL y se requiere un reinicio del sistema para completar la desinstalación, DiUninstallDriver muestra un cuadro de diálogo de reinicio del sistema. Para obtener más información sobre este parámetro, vea la siguiente sección Comentarios .
Valor devuelto
DiUninstallDriver devuelve TRUE si la función quita correctamente el paquete de controladores de los dispositivos en los que está instalado y se quita correctamente del almacén de controladores del sistema. Si el paquete de controladores no se desinstala correctamente del almacén de controladores, DiUninstallDriver devuelve FALSE y el error registrado se puede recuperar realizando una llamada a GetLastError. Algunos de los valores de error más comunes que GetLastError podrían devolver son los siguientes:
Código devuelto | Descripción |
---|---|
|
El autor de la llamada no tiene privilegios de administrador. De forma predeterminada, Windows requiere que el autor de la llamada tenga privilegios de administrador para desinstalar un paquete de controladores del almacén de controladores. |
|
La ruta de acceso del archivo INF especificado no existe. |
|
El valor especificado para Flags no es igual a cero o DIURFLAG_NO_REMOVE_INF. |
|
La aplicación que realiza la llamada es una aplicación de 32 bits que intenta ejecutarse en un entorno de 64 bits, que no está permitido. Para obtener más información, consulte Instalación de dispositivos en sistemas de 64 bits. |
Comentarios
En general, una aplicación de desinstalación debe establecer NeedReboot en NULL para dirigir a DiUninstallDriver para pedir al usuario que reinicie el sistema si se requiere un reinicio para completar la eliminación. Una aplicación debe proporcionar un puntero NeedReboot solo en los casos siguientes:
- La aplicación debe llamar a DiUninstallDriver varias veces para completar una desinstalación. En este caso, la aplicación debe registrar si alguna de las llamadas a DiUninstallDriver devuelve un valor TRUE NeedReboot y, si es así, pide al usuario que reinicie el sistema después de la llamada final a DiUninstallDriver.
- La aplicación debe realizar operaciones necesarias, aparte de llamar a DiUninstallDriver, antes de que se produzca un reinicio del sistema. Si se requiere un reinicio del sistema, la aplicación debe finalizar las operaciones necesarias y, a continuación, pedir al usuario que reinicie el sistema.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Disponible en Windows 10 versión 1703 y versiones posteriores de Windows. |
Plataforma de destino | Escritorio |
Encabezado | newdev.h (incluya Newdev.h) |
Library | Newdev.lib |