Funzione DiUninstallDriverA (newdev.h)
La funzione DiUninstallDriver rimuove un pacchetto driver da qualsiasi dispositivo installato installando tali dispositivi con un altro pacchetto driver corrispondente, se disponibile o il driver Null se non è disponibile alcun altro pacchetto di driver corrispondente. Il pacchetto driver specificato viene quindi rimosso dall'archivio driver.
Sintassi
BOOL DiUninstallDriverA(
[in, optional] HWND hwndParent,
[in] LPCSTR InfPath,
[in] DWORD Flags,
[out, optional] PBOOL NeedReboot
);
Parametri
[in, optional] hwndParent
Handle alla finestra di primo livello che DiUninstallDriver deve usare per visualizzare qualsiasi componente dell'interfaccia utente associato alla disinstallazione del driver. Questo parametro è facoltativo e può essere impostato su NULL.
[in] InfPath
Puntatore a una stringa con terminazione NULL che fornisce il percorso completo del file INF per il pacchetto driver.
[in] Flags
Valore di tipo DWORD che specifica zero o uno o più dei flag seguenti: DIURFLAG_NO_REMOVE_INF. In genere, questo flag deve essere impostato su zero.
Se questo flag è zero, DiUninstallDriver rimuove il pacchetto driver da qualsiasi dispositivo installato installando tali dispositivi con un altro pacchetto driver corrispondente, se disponibile o il driver Null se non è disponibile alcun altro pacchetto driver corrispondente. Tuttavia, se questo flag è impostato su DIURFLAG_NO_REMOVE_INF, DiUninstallDriver rimuove il pacchetto driver da qualsiasi dispositivo installato, ma non rimuove il pacchetto driver dall'Archivio driver.
Per informazioni sul modo in cui Windows seleziona un pacchetto driver per un dispositivo, vedere How Windows Selects Drivers (How Windows Selects Drivers).
[out, optional] NeedReboot
Puntatore a un valore di tipo BOOL impostato da DiUninstallDriver per indicare se è necessario un riavvio del sistema per completare la disinstallazione. Questo parametro è facoltativo e può essere NULL. Se il parametro viene fornito e per completare la disinstallazione è necessario riavviare il sistema, DiUninstallDriver imposta il valore su TRUE. In questo caso, il chiamante deve richiedere all'utente di riavviare il sistema. Se questo parametro viene fornito e un riavvio del sistema non è necessario per completare la disinstallazione, DiUninstallDriver imposta il valore su FALSE. Se il parametro è NULL e è necessario un riavvio del sistema per completare la disinstallazione, DiUninstallDriver visualizza una finestra di dialogo di riavvio del sistema. Per altre informazioni su questo parametro, vedere la sezione Osservazioni seguenti.
Valore restituito
DiUninstallDriver restituisce TRUE se la funzione rimuove correttamente il pacchetto driver da tutti i dispositivi installati e viene rimosso correttamente dall'archivio driver del sistema. Se il pacchetto driver non viene disinstallato correttamente dall'archivio driver, DiUninstallDriver restituisce FALSE e l'errore registrato può essere recuperato eseguendo una chiamata a GetLastError. Alcuni dei valori di errore più comuni che GetLastError potrebbero restituire sono i seguenti:
Codice restituito | Descrizione |
---|---|
|
Il chiamante non dispone dei privilegi di amministratore. Per impostazione predefinita, Windows richiede che il chiamante disponga dei privilegi di amministratore per disinstallare un pacchetto driverdall'archivio driver. |
|
Il percorso del file INF specificato non esiste. |
|
Il valore specificato per Flags non è uguale a zero o DIURFLAG_NO_REMOVE_INF. |
|
L'applicazione chiamante è un'applicazione a 32 bit che tenta di eseguire in un ambiente a 64 bit, che non è consentito. Per altre informazioni, vedere Installazione di dispositivi in sistemi a 64 bit. |
Commenti
In generale, un'applicazione di disinstallazione deve impostare NeedReboot su NULL per indirizzare DiUninstallDriver per richiedere all'utente di riavviare il sistema se è necessario completare la rimozione. Un'applicazione deve fornire un puntatore NeedReboot solo nei casi seguenti:
- L'applicazione deve chiamare DiUninstallDriver più volte per completare una disinstallazione. In questo caso, l'applicazione deve registrare se un valore TRUENeedReboot viene restituito da una delle chiamate a DiUninstallDriver e, in tal caso, chiedere all'utente di riavviare il sistema dopo la chiamata finale a DiUninstallDriver .
- L'applicazione deve eseguire operazioni necessarie, diverse dalla chiamata di DiUninstallDriver, prima che si verifichi un riavvio del sistema. Se è necessario un riavvio del sistema, l'applicazione deve completare le operazioni necessarie e quindi richiedere all'utente di riavviare il sistema.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Disponibile in Windows 10 versione 1703 e versioni successive di Windows. |
Piattaforma di destinazione | Desktop |
Intestazione | newdev.h (include Newdev.h) |
Libreria | Newdev.lib |