Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Una richiesta di DIF_REMOVE notifica a un programma di installazione che Windows sta per rimuovere un dispositivo e offre al programma di installazione la possibilità di prepararsi per la rimozione.
Quando viene inviato
Quando un utente rimuove un dispositivo in Gestione dispositivi.
Chi gestisce
Co-programma di installazione classi |
Può gestire |
Programma di installazione condivisa del dispositivo |
Può gestire |
Programma di installazione classi |
Può gestire |
Input del programma di installazione
DeviceInfoSet
Fornisce un handle al set di informazioni sul dispositivo che contiene il dispositivo da rimuovere.
DeviceInfoData
Fornisce un puntatore a una struttura SP_DEVINFO_DATA per il dispositivo nel set di informazioni sul dispositivo.
Parametri di installazione del dispositivo
Esistono parametri di installazione del dispositivo (SP_DEVINSTALL_PARAMS) associati a DeviceInfoData.
Parametri di installazione della classe
Una struttura SP_REMOVEDEVICE_PARAMS potrebbe essere associata a DeviceInfoData.
Non sono presenti parametri di installazione della classe per la richiesta se il flag DI_CLASSINSTALLPARAMS è deselezionato nella SP_DEVINSTALL_PARAMS. In questo caso, non viene specificato alcun profilo hardware e il dispositivo deve essere rimosso dal sistema nel suo complesso.
Output del programma di installazione
Valore restituito del programma di installazione
Un co-programma di installazione può restituire NO_ERROR, ERROR_DI_POSTPROCESSING_REQUIRED o un codice di errore Win32.
Se un programma di installazione di classe gestisce correttamente questa richiesta e SetupDiCallClassInstaller dovrebbe successivamente chiamare il gestore predefinito, il programma di installazione della classe restituisce ERROR_DI_DO_DEFAULT.
Se il programma di installazione della classe gestisce correttamente questa richiesta, inclusa la chiamata diretta al gestore predefinito, il programma di installazione della classe deve restituire NO_ERROR e SetupDiCallClassInstaller non chiamerà di nuovo il gestore predefinito.
Nota Il programma di installazione della classe può chiamare direttamente il gestore predefinito, ma il programma di installazione della classe non deve mai tentare di sostituire le operazioni del gestore predefinito.
Per altre informazioni sulla chiamata del gestore predefinito, vedere Chiamata di gestori di codice DIF predefiniti.
Se il programma di installazione della classe rileva un errore, il programma di installazione deve restituire un codice di errore Win32 appropriato e SetupDiCallClassInstaller non chiamerà successivamente il gestore predefinito.
Gestore del codice DIF predefinito
Operazione del programma di installazione
In risposta a una richiesta di DIF_REMOVE, un programma di installazione esegue in genere alcune operazioni di pulizia. In questo caso, un co-programma di installazione restituisce NO_ERROR e un programma di installazione di classe restituisce ERROR_DI_DO_DEFAULT.
Se un programma di installazione determina che il dispositivo non deve essere rimosso, il programma di installazione non riesce la richiesta DIF restituendo un codice di errore Win32. Se il flag DI_QUIETINSTALL è chiaro, il programma di installazione dovrebbe visualizzare un messaggio all'utente che spiega perché il dispositivo non viene rimosso.
I co-programmi di installazione non devono tentare di rimuovere il dispositivo stesso chiamando SetupDiRemoveDevice. I co-programmi di installazione gestiscono in genere questa richiesta durante la post-elaborazione, dopo che il dispositivo è stato rimosso correttamente.
Se un co-programma di installazione deve eliminare le informazioni nel Registro di sistema, ad esempio, il co-programma di installazione deve eseguire questa operazione durante la post-elaborazione e solo se i programmi di installazione precedenti hanno avuto esito positivo nella richiesta di rimozione. Nel passaggio di pre-elaborazione, il co-programma di installazione deve archiviare le informazioni del Registro di sistema nel parametro di contesto e restituire ERROR_DI_POSTPROCESSING_REQUIRED per richiedere la post-elaborazione. Quando Windows chiama il co-programma di installazione per la post-elaborazione di questa richiesta DIF, il co-programma di installazione deve verificare che lo stato DIF sia NO_ERROR e quindi eliminare le informazioni del Registro di sistema. Se un co-programma di installazione elimina le informazioni del Registro di sistema nel passaggio di pre-elaborazione e il programma di installazione della classe (o un altro co-programma di installazione) non riesce il DIF_REMOVE, il co-programma di installazione potrebbe lasciare il dispositivo in uno stato imprevedibile.
I programmi di installazione non devono eliminare i file quando si gestisce questa richiesta DIF, nel caso in cui i file siano in uso da un altro dispositivo.
Windows invia questa richiesta DIF prima di avviare la rimozione e la rimozione di query PnP.
Per altre informazioni sui codici DIF, vedere Gestione dei codici DIF.
Requirements
Versione |
Supportato in Microsoft Windows 2000 e versioni successive di Windows. |
Header |
Setupapi.h (include Setupapi.h) |