Partager via


SetupDiRestartDevices, fonction (setupapi.h)

La fonction SetupDiRestartDevices redémarre un appareil spécifié ou, si nécessaire, redémarre tous les appareils qui sont gérés par les mêmes pilotes de fonction et de filtre qui exploitent l’appareil spécifié.

Syntaxe

WINSETUPAPI BOOL SetupDiRestartDevices(
  [in]      HDEVINFO         DeviceInfoSet,
  [in, out] PSP_DEVINFO_DATA DeviceInfoData
);

Paramètres

[in] DeviceInfoSet

Handle pour un jeu d’informations d’appareil qui contient l’élément d’informations sur l’appareil qui représente l’appareil à redémarrer.

[in, out] DeviceInfoData

Pointeur vers une structure de SP_DEVINFO_DATA pour le membre d’informations de l’appareil qui représente le redémarrage de l’appareil. Ce paramètre est également un paramètre de sortie, car SetupDiRestartDevices met à jour les paramètres d’installation de l’appareil pour ce membre d’informations d’appareil, ainsi que le code status et le code de problème de l’appareil correspondant instance. Pour plus d’informations sur ces mises à jour, consultez la section Remarques suivante.

Valeur retournée

Si l’opération réussit, SetupDiRestartDevices retourne TRUE ; sinon, la fonction retourne FALSE et l’erreur journalisée peut être récupérée par un appel à GetLastError.

Remarques

SetupDiRestartDevices doit être appelé uniquement par un programme d’installation de classe lorsqu’un programme d’installation de classe gère une demande de DIF_INSTALLDEVICE et uniquement dans de rares situations où le programme d’installation de classe doit effectuer des opérations après que toutes les opérations d’installation par défaut, à l’exception du démarrage d’un appareil, ont terminé . Pour plus d’informations sur l’appel de SetupDiRestartDevices dans ces situations, consultez DIF_INSTALLDEVICE.

SetupDiRestartDevices redémarre uniquement l’appareil spécifié si le redémarrage peut être effectué sans affecter l’installation d’autres appareils qui sont gérés par le même pilote de fonction ou les pilotes de filtre qui opèrent l’appareil. Plus précisément, si le redémarrage de l’appareil spécifié ne copie pas les nouveaux fichiers ou ne modifie pas les fichiers précédemment installés pour l’appareil, SetupDiRestartDevices redémarre uniquement l’appareil spécifié. Sinon, la fonction redémarre tous les appareils qui sont gérés par les mêmes pilotes de fonction et de filtre qui exploitent l’appareil spécifié.

SetupDiRestartDevices met à jour les paramètres d’installation de l’appareil et les status de l’appareil pour refléter le résultat de la tentative d’opération de redémarrage. Par exemple :

  • Si l’appareil est démarré, SetupDiRestartDevices définit l’appareil status sur DN_STARTED.
  • Si un redémarrage du système est nécessaire pour démarrer un appareil, SetupDiRestartDevices définit l’indicateur DI_NEEDREBOOT dans le membre Flags de la structure SP_DEVINSTALL_PARAMETER qui est associée à l’élément d’informations sur l’appareil et définit le code du problème pour l’appareil sur CM_PROB_NEED_RESTART.
La fonction CM_Get_DevNode_Status récupère les status et le code du problème d’un instance d’appareil, et la fonction SetupDiGetDeviceInstallParams récupère les paramètres d’installation de l’appareil pour l’élément d’informations sur l’appareil qui représente l’appareil instance.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Disponible dans Windows Server 2003 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

Voir aussi

CM_Get_DevNode_Status

DIF_INSTALLDEVICE

SP_DEVINFO_DATA

SetupDiGetDeviceInstallParams