DIF_REMOVE
Una richiesta di DIF_REMOVE notifica a un programma di installazione che Windows sta per rimuovere un dispositivo e offre al programma di installazione un'opportunità di preparare la rimozione.
Data di invio
Quando un utente rimuove un dispositivo in Gestione dispositivi.
Chi gestisce
Co-installer di classe |
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 del dispositivo che contiene il dispositivo da rimuovere.
DeviceInfoData
Fornisce un puntatore a una struttura di SP_DEVINFO_DATA per il dispositivo nel set di informazioni del dispositivo.
Parametri di installazione del dispositivo
Sono disponibili 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 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 dal programma di installazione
Un co-installer può restituire NO_ERROR, ERROR_DI_POSTPROCESSING_REQUIRED o un codice di errore Win32.
Se un programma di installazione della classe gestisce correttamente questa richiesta e SetupDiCallClassInstaller deve 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 al gestore predefinito, vedere Chiamata di gestori di codice DIF predefiniti.
Se il programma di installazione della classe riscontra un errore, il programma di installazione deve restituire un codice di errore Win32 appropriato e SetupDiCallClassInstaller non chiamerà successivamente il gestore predefinito.
Gestore di 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-installer restituisce NO_ERROR e un programma di installazione della 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 deve visualizzare un messaggio all'utente che spiega perché il dispositivo non viene rimosso.
I co-installer non devono tentare di rimuovere il dispositivo stesso chiamando SetupDiRemoveDevice. I co-installer gestiscono in genere questa richiesta in post-elaborazione, dopo che il dispositivo viene rimosso correttamente.
Se un co-installer deve eliminare informazioni nel Registro di sistema, ad esempio, il co-installer deve eseguire questa operazione in 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-installer 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-installer per la post-elaborazione di questa richiesta DIF, il co-installer deve verificare che lo stato DIF sia NO_ERROR e quindi eliminare le informazioni del Registro di sistema. Se un co-installer elimina le informazioni del Registro di sistema nel passaggio di pre-elaborazione e il programma di installazione della classe (o un altro co-installer) ha esito negativo DIF_REMOVE, il co-installer potrebbe lasciare il dispositivo in uno stato imprevedibile.
I programmi di installazione non devono eliminare i file durante la gestione di 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.
Requisiti
Versione |
Supportato in Microsoft Windows 2000 e versioni successive di Windows. |
Intestazione |
Setupapi.h (include Setupapi.h) |