SetupDiCallClassInstaller, fonction (setupapi.h)

La fonction SetupDiCallClassInstaller appelle le programme d’installation de classe approprié, ainsi que tous les co-programmes d’installation inscrits, avec la demande d’installation spécifiée (code DIF).

Syntaxe

WINSETUPAPI BOOL SetupDiCallClassInstaller(
  [in]           DI_FUNCTION      InstallFunction,
  [in]           HDEVINFO         DeviceInfoSet,
  [in, optional] PSP_DEVINFO_DATA DeviceInfoData
);

Paramètres

[in] InstallFunction

Demande d’installation de l’appareil (demande DIF) à passer aux co-programmes d’installation et au programme d’installation de classe. Les codes DIF ont le format DIF_XXX et sont définis dans Setupapi.h. Pour plus d’informations, consultez Codes de fonction d’installation de l’appareil.

Note Pour certaines demandes DIF, l’appelant doit être membre du groupe Administrateurs. Pour ces demandes DIF, cette exigence est répertoriée dans la page de référence du gestionnaire par défaut associé.
 

[in] DeviceInfoSet

Handle d’un ensemble d’informations d’appareil pour l’ordinateur local. Cet ensemble contient un élément d’installation d’appareil qui représente l’appareil pour lequel effectuer la fonction d’installation spécifiée.

[in, optional] DeviceInfoData

Pointeur vers une structure de SP_DEVINFO_DATA qui spécifie l’élément d’informations sur l’appareil dans deviceInfoSet qui représente l’appareil pour lequel effectuer la fonction d’installation spécifiée. Ce paramètre est facultatif et peut être défini sur NULL. Si ce paramètre est spécifié, SetupDiCallClassInstaller exécute la fonction spécifiée sur l’élément DeviceInfoData . Si DeviceInfoData a la valeur NULL, SetupDiCallClassInstaller appelle les programmes d’installation pour la classe d’installation associée à DeviceInfoSet.

Valeur retournée

La fonction retourne TRUE si elle réussit. Sinon, elle retourne FALSE et l’erreur journalisée peut être récupérée en effectuant un appel à GetLastError.

Lorsque GetLastError retourne ERROR_IN_WOW64, cela signifie que l’application appelante est une application 32 bits qui tente de s’exécuter dans un environnement 64 bits, ce qui n’est pas autorisé.

Remarques

SetupDiCallClassInstaller appelle le programme d’installation de classe et tous les co-programmes d’installation inscrits pour un appareil ou une classe d’installation d’appareil. Cette fonction charge les programmes d’installation s’ils ne sont pas encore chargés. La fonction appelle également le gestionnaire par défaut pour la requête DIF, s’il existe un gestionnaire par défaut et si les programmes d’installation retournent un status indiquant que le gestionnaire par défaut doit être appelé.

Les applications d’installation d’appareil appellent cette fonction avec divers codes de fonction d’installation d’appareil (codes DIF). La fonction garantit que tous les programmes d’installation et gestionnaires par défaut appropriés sont appelés, dans l’ordre correct, pour une demande DIF donnée. Pour plus d’informations, consultez Gestion des codes DIF.

Une fois que SetupDiCallClassInstaller a retourné TRUE, l’application d’installation de l’appareil doit appeler SetupDiGetDeviceInstallParams pour obtenir une structure SP_DEVINSTALL_PARAMS . Si l’indicateur DI_NEEDREBOOT ou DI_NEEDRESTART de la structure est défini, l’appelant doit inviter l’utilisateur à redémarrer le système. Par exemple, l’appelant peut le faire en appelant SetupPromptReboot.

Toutefois, n’oubliez pas qu’une application d’installation d’appareil doit demander un redémarrage du système une fois au maximum. Par conséquent, toute application d’installation d’appareil qui crée plusieurs appels à SetupDiCallClassInstaller et SetupDiGetDeviceInstallParams doit enregistrer les indicateurs DI_NEEDREBOOT et DI_NEEDRESTART après chaque appel. Toutefois, elle ne doit inviter l’utilisateur qu’après le dernier appel retourné.

En réponse à un code DIF fourni par SetupDiCallClassInstaller, les programmes d’installation de classe et les co-programmes d’installation peuvent effectuer des opérations qui nécessitent le redémarrage du système. Dans ce cas, le programme d’installation ou le co-programme d’installation doit effectuer les opérations suivantes :

  1. Appelez SetupDiGetDeviceInstallParams pour obtenir la structure SP_DEVINSTALL_PARAMS .
  2. Définissez l’indicateur DI_NEEDREBOOT ou DI_NEEDRESTART dans le membre Flags de la structure.
  3. Appelez SetupDiSetDeviceInstallParams, en fournissant la structure SP_DEVINSTALL_PARAMS mise à jour, pour enregistrer le membre Flags révisé.
Après le retour de SetupDiCallClassInstaller, l’application d’installation de l’appareil qui l’a appelée doit appeler SetupDiGetDeviceInstallParams, case activée les indicateurs et demander un redémarrage si nécessaire.

L’ensemble d’informations sur l’appareil spécifié par DeviceInfoSet doit contenir uniquement des éléments pour les appareils sur l’ordinateur local.

Pour plus d’informations sur la conception et le fonctionnement des co-programmes d’installation, consultez Écriture d’un co-programme d’installation.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Disponible dans Microsoft Windows 2000 et versions ultérieures de Windows.
Plateforme cible Desktop (Expérience utilisateur)
En-tête setupapi.h (inclure Setupapi.h)
Bibliothèque Setupapi.lib
DLL Setupapi.dll
Ensemble d’API ext-ms-win-setupapi-classinstallers-l1-1-0 (introduit dans Windows 8)

Voir aussi

SP_DEVINFO_DATA