Partager via


DIF_REMOVE

Une demande de DIF_REMOVE avertit un programme d’installation que Windows est sur le point de supprimer un appareil et donne au programme d’installation la possibilité de se préparer à la suppression.

Date d’envoi

Lorsqu’un utilisateur supprime un appareil dans Gestionnaire de périphériques.

Qui gère

Co-programme d’installation de classe

Peut gérer

Co-programme d’installation d’appareil

Peut gérer

Programme d’installation de classe

Peut gérer

Entrée du programme d’installation

DeviceInfoSet
Fournit un handle au jeu d’informations d’appareil qui contient l’appareil à supprimer.

DeviceInfoData
Fournit un pointeur vers une structure de SP_DEVINFO_DATA pour l’appareil dans le jeu d’informations de l’appareil.

Paramètres d’installation de l’appareil
Des paramètres d’installation d’appareil (SP_DEVINSTALL_PARAMS) sont associés à DeviceInfoData.

Paramètres d’installation de classe
Une structure SP_REMOVEDEVICE_PARAMS peut être associée à DeviceInfoData.

Il n’existe aucun paramètre d’installation de classe pour la demande si l’indicateur DI_CLASSINSTALLPARAMS est clair dans le SP_DEVINSTALL_PARAMS. Dans ce cas, aucun profil matériel n’est spécifié et l’appareil doit être supprimé du système dans son ensemble.

Sortie du programme d’installation

None

Valeur de retour du programme d’installation

Un co-programme d’installation peut retourner NO_ERROR, ERROR_DI_POSTPROCESSING_REQUIRED ou un code d’erreur Win32.

Si un programme d’installation de classe gère correctement cette demande et que SetupDiCallClassInstaller doit ensuite appeler le gestionnaire par défaut, le programme d’installation de classe retourne ERROR_DI_DO_DEFAULT.

Si le programme d’installation de classe gère correctement cette demande, notamment en appelant directement le gestionnaire par défaut, le programme d’installation de classe doit retourner NO_ERROR et SetupDiCallClassInstaller n’appellera plus le gestionnaire par défaut par la suite.

Note Le programme d’installation de classe peut appeler directement le gestionnaire par défaut, mais le programme d’installation de classe ne doit jamais tenter de remplacer les opérations du gestionnaire par défaut.

Pour plus d’informations sur l’appel du gestionnaire par défaut, consultez Appel de gestionnaires de code DIF par défaut.

Si le programme d’installation de classe rencontre une erreur, le programme d’installation doit retourner un code d’erreur Win32 approprié et SetupDiCallClassInstaller n’appellera pas par la suite le gestionnaire par défaut.

Gestionnaire de code DIF par défaut

SetupDiRemoveDevice

Opération du programme d’installation

En réponse à une demande de DIF_REMOVE, un programme d’installation effectue généralement des opérations de propre. Dans ce cas, un co-programme d’installation retourne NO_ERROR et un programme d’installation de classe retourne ERROR_DI_DO_DEFAULT.

Si un programme d’installation détermine que l’appareil ne doit pas être supprimé, le programme d’installation échoue à la requête DIF en retournant un code d’erreur Win32. Si l’indicateur DI_QUIETINSTALL est clair, le programme d’installation doit afficher un message à l’utilisateur expliquant pourquoi l’appareil n’est pas supprimé.

Les co-programmes d’installation ne doivent pas tenter de supprimer l’appareil eux-mêmes en appelant SetupDiRemoveDevice. Les co-programmes d’installation gèrent généralement cette demande en post-traitement, une fois que l’appareil a été supprimé.

Si un co-programme d’installation doit supprimer des informations dans le Registre, par exemple, le co-programme d’installation doit le faire après traitement et uniquement si les programmes d’installation précédents ont réussi la demande de suppression. Dans sa passe de prétraitement, le co-programme d’installation doit stocker les informations du Registre dans son paramètre de contexte et retourner ERROR_DI_POSTPROCESSING_REQUIRED pour demander le post-traitement. Lorsque Windows appelle le co-programme d’installation pour le post-traitement de cette demande DIF, le co-programme d’installation doit case activée que le status DIF est NO_ERROR, puis supprimer les informations du Registre. Si un co-programme d’installation supprime les informations du Registre dans sa passe de prétraitement et que le programme d’installation de classe (ou un autre co-programme d’installation) échoue à l’DIF_REMOVE, le co-programme d’installation peut laisser l’appareil dans un état imprévisible.

Les programmes d’installation ne doivent pas supprimer de fichiers lors de la gestion de cette demande DIF, au cas où les fichiers sont en cours d’utilisation par un autre appareil.

Windows envoie cette requête DIF avant d’initier le traitement de la suppression et de la suppression des requêtes PnP.

Pour plus d’informations sur les codes DIF, consultez Gestion des codes DIF.

Spécifications

Version

Pris en charge dans Microsoft Windows 2000 et versions ultérieures de Windows.

En-tête

Setupapi.h (inclure Setupapi.h)

Voir aussi

SetupDiRemoveDevice

SP_DEVINFO_DATA

SP_DEVINSTALL_PARAMS

SP_REMOVEDEVICE_PARAMS