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 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

Nessuno

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

SetupDiRemoveDevice

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)

Vedere anche

SetupDiRemoveDevice

SP_DEVINFO_DATA

SP_DEVINSTALL_PARAMS

SP_REMOVEDEVICE_PARAMS