Partager via


Gestion des codes DIF

Notes

Les fonctionnalités décrites dans cette section ne sont pas prises en charge et les packages de pilotes qui les contiennent ne recevront plus de signature Microsoft. Consultez Utilisation d’un fichier INF universel.

Les applications d’installation d’appareil envoient des codes de fonction d’installation d’appareil (codes DIF) aux programmes d’installation en appelant SetupDiCallClassInstaller. Cette fonction, à son tour, appelle la fonction de point d’entrée du programme d’installation. Pour obtenir une description des points d’entrée du programme d’installation, consultez :

Interface de co-programme d’installation

La page de référence pour chaque code DIF contient les sections suivantes :

En cas d’envoi
Décrit les moments typiques où, et les raisons pour lesquelles, une application d’installation d’appareil envoie cette demande DIF.

Qui gère
Spécifie les programmes d’installation autorisés à gérer cette demande. Les programmes d’installation incluent des programmes d’installation de classe, des co-programmes d’installation (co-programmes d’installation à l’échelle de la classe d’installation) et des co-programmes d’installation d’appareils (co-programmes d’installation spécifiques à l’appareil).

Entrée du programme d’installation
Outre le code DIF, SetupDiCallClassInstaller fournit des informations supplémentaires relatives à la demande particulière. Pour plus d’informations sur les informations fournies avec chaque demande, consultez la page de référence de chaque code DIF. La liste suivante contient une description générale des paramètres d’entrée supplémentaires et répertorie les fonctions d’installation de l’appareil (fonctions SetupDiXxx ) que les programmes d’installation peuvent appeler pour gérer les paramètres :

DeviceInfoSet
Fournit un handle au jeu d’informations de l’appareil.

Le handle est opaque. Utilisez le handle, par exemple, pour identifier les informations d’appareil définies dans les appels aux fonctions SetupDiXxx .

DeviceInfoSet peut avoir une classe de configuration d’appareil associée. Si c’est le cas, appelez SetupDiGetDeviceInfoListClass pour obtenir le GUID de classe.

DeviceInfoData
Fournit éventuellement un pointeur vers une structure SP_DEVINFO_DATA qui identifie un appareil dans le jeu d’informations de l’appareil.

Paramètres d’installation de l’appareil
Ces paramètres indirects fournissent des informations pour l’installation de l’appareil dans une structure SP_DEVINSTALL_PARAMS . Si DeviceInfoData n’a pas la valeur NULL, des paramètres d’installation d’appareil sont associés à DeviceInfoData. Si DeviceInfoData a la valeur NULL, les paramètres d’installation de l’appareil sont associés au DeviceInfoSet.

Appelez SetupDiGetDeviceInstallParams pour obtenir les paramètres d’installation de l’appareil.

Paramètres d’installation de classe
Les paramètres indirects facultatifs sont spécifiques à la demande DIF particulière. Il s’agit essentiellement de « paramètres de requête DIF ». Par exemple, les paramètres d’installation de classe pour une demande d’installation de DIF_REMOVE sont contenus dans une structure de SP_REMOVEDEVICE_PARAMS.

Chaque structure SP_XXX_PARAMS commence par une structure de SP_CLASSINSTALL_HEADER de taille fixe.

Appelez SetupDiGetClassInstallParams pour obtenir les paramètres d’installation de la classe.

Si une requête DIF a des paramètres d’installation de classe, un ensemble de paramètres est associé au DeviceInfoSet et à un autre ensemble de paramètres associés à DeviceInfoData (si la requête DIF spécifie DeviceInfoData). SetupDiGetClassInstallParams retourne les paramètres les plus spécifiques disponibles.

Contexte
Les co-programmes d’installation ont un paramètre de contexte facultatif.

Sortie du programme d’installation
Décrit la sortie attendue pour ce code DIF.

Si un programme d’installation modifie les paramètres d’installation de l’appareil, le programme d’installation doit appeler SetupDiSetDeviceInstallParams pour appliquer les modifications avant de retourner. De même, si un programme d’installation modifie les paramètres d’installation de classe pour le code DIF, le programme d’installation doit appeler SetupDiSetClassInstallParams.

Valeur de retour du programme d’installation
Spécifie les valeurs de retour appropriées pour le code DIF. Pour plus d’informations sur les valeurs de retour, consultez la figure suivante.

Gestionnaire de code DIF par défaut
Spécifie la fonction SetupDiXxx qui effectue les opérations par défaut définies par le système pour le code DIF. Tous les codes DIF n’ont pas de gestionnaire par défaut. Sauf si un co-programme d’installation ou un programme d’installation de classe prend des mesures pour empêcher l’appel du gestionnaire par défaut, SetupDiCallClassInstaller appelle le gestionnaire par défaut pour un code DIF après avoir appelé le programme d’installation de classe (mais avant d’appeler les co-programmes d’installation inscrits pour le post-traitement).

Si un programme d’installation de classe gère correctement un code DIF 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 un code DIF, 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. Notez que le programme d’installation de classe peut appeler directement le gestionnaire par défaut, mais que le programme d’installation de classe ne doit jamais tenter de remplacer les opérations du gestionnaire 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.

Les co-programmes d’installation ne doivent pas appeler les gestionnaires de code DIF par défaut.

Opération du programme d’installation
Décrit les étapes classiques qu’un programme d’installation peut effectuer pour gérer la demande DIF.

Voir aussi
Répertorie les sources d’informations connexes.

La figure suivante montre la séquence d’événements dans SetupDiCallClassInstaller pour le traitement d’un code DIF.

diagramme illustrant le flux du traitement du code dif dans setupdicallclassinstaller.

Le système d’exploitation effectue certaines opérations pour chaque code DIF. Les co-programmes d’installation fournis par le fournisseur et les programmes d’installation de classe peuvent participer aux activités d’installation. Notez que SetupDiCallClassInstaller appelle les co-programmes d’installation inscrits pour le post-traitement, même si le code DIF échoue.