Partager via


InstallHinfSectionA, fonction (setupapi.h)

[Cette fonction peut être utilisée dans les systèmes d’exploitation indiqués dans la section Configuration requise. Il sera peut-être modifié ou indisponible dans les versions ultérieures. SetupAPI ne doit plus être utilisé pour installer des applications. Utilisez plutôt Windows Installer pour développer des programmes d’installation d’applications. SetupAPI continue d’être utilisé pour installer les pilotes de périphérique.]

InstallHinfSection est une fonction de point d’entrée exportée par Setupapi.dll que vous pouvez utiliser pour exécuter une section d’un fichier .inf. InstallHinfSection peut être appelé en appelant l’utilitaire Rundll32.exe comme décrit dans la section Remarques.

Le prototype de la fonction InstallHinfSection suit la forme de toutes les fonctions de point d’entrée utilisées avec Rundll32.exe.

Si un fichier est copié ou modifié, l’appelant de cette fonction doit disposer de privilèges pour écrire dans le répertoire cible. S’il existe des services en cours d’installation, l’appelant de cette fonction doit avoir accès au Gestionnaire de contrôle des services.

Syntaxe

void InstallHinfSectionA(
  [in] HWND      Window,
  [in] HINSTANCE ModuleHandle,
  [in] PCSTR     CommandLine,
  [in] INT       ShowCommand
);

Paramètres

[in] Window

Handle de fenêtre parente. En règle générale, hwnd a la valeur Null.

[in] ModuleHandle

Réservé et doivent avoir la valeur Null.

[in] CommandLine

Pointeur vers la mémoire tampon contenant la ligne de commande. Vous devez utiliser une chaîne terminée par null.

[in] ShowCommand

Réservé et doit être égal à zéro.

Valeur de retour

None

Remarques

Notez que trois exportations existent : InstallHinfSection (pour RunDll32), InstallHinfSectionA et InstallHinfSectionW.

Pour exécuter une section Install d’un fichier .inf spécifié, vous pouvez appeler InstallHinfSection avec le Rundll32.exe à l’aide de la syntaxe suivante.

RUNDLL32.EXE SETUPAPI.DLL,Chemin du mode <>>de section<>InstallHinfSection<

Cette opération transmet le « chemin> du mode<>section<>» à CmdLineBuffer.<

Votre programme peut également appeler InstallHinfSection, InstallHinfSectionA ou InstallHinfSectionW directement, en définissant le paramètre CmdLineBuffer sur ce qui suit.

"<section> <mode> <path>"

path est le chemin d’accès complet au fichier .inf, mode est le paramètre de mode de redémarrage, et section est n’importe quelle section Installer dans le fichier .inf. Le séparateur de virgules entre SETUPAPI.DLL et InstallHinfSection sur la ligne de commande est requis. Notez qu’il ne peut pas y avoir d’espace blanc sur la ligne de commande entre la virgule et SETUPAPI.DLL ou InstallHinfSection.

Il est recommandé de spécifier le chemin d’accès complet au fichier .inf comme chemin d’accès.

Vous pouvez spécifier une section Installer dans le fichier .inf en tant que section. Les espaces ne sont pas autorisés.

Vous devez utiliser une combinaison des valeurs suivantes pour mode. Vous devez inclure 128 pour définir le chemin d’accès par défaut de l’installation à l’emplacement de l’inf. Sinon, un inf fourni par le système est supposé. Ajoutez des valeurs pour spécifier le redémarrage. Notez que seules les valeurs 128 ou 132 sont recommandées. D’autres valeurs peuvent entraîner le redémarrage inutile ou le redémarrage de l’ordinateur lorsque cela est nécessaire.

Valeur Description
0 INF fourni par le système.
128 Définissez le chemin d’accès par défaut de l’installation sur l’emplacement de l’INF. Il s’agit du paramètre classique.
+0 Ne redémarrez jamais l’ordinateur.
+1 Redémarrez l’ordinateur dans tous les cas.
+2 Demandez toujours aux utilisateurs s’ils souhaitent redémarrer.
+3 Redémarrez l’ordinateur si nécessaire sans demander l’autorisation à l’utilisateur.
+4 Si un redémarrage de l’ordinateur est nécessaire, demandez l’autorisation à l’utilisateur avant de redémarrer.
 
 

Par exemple, la ligne de commande suivante exécute la section DefaultInstall du fichier Shell.inf. Si le programme d’installation détermine qu’un redémarrage est nécessaire, l’utilisateur est invité à entrer une boîte de dialogue « Redémarrer l’ordinateur, Oui/Non ».

RUNDLL32.EXE SETUPAPI.DLL,InstallHinfSection DefaultInstall 132 C :\WINDOWS\INF\SHELL. INF

Notes

L’en-tête setupapi.h définit InstallHinfSection en tant qu’alias qui sélectionne automatiquement la version ANSI ou Unicode de cette fonction en fonction de la définition de la constante de préprocesseur UNICODE. La combinaison de l’utilisation de l’alias neutre en encodage avec du code qui n’est pas neutre en encodage peut entraîner des incompatibilités qui entraînent des erreurs de compilation ou d’exécution. Pour plus d’informations, consultez Conventions pour les prototypes de fonction.

Attention

Lorsqu’il est utilisé sur une architecture autre que x86 ou amd64, ou sur un système en mode S, InstallHInfSection nécessite que le fichier INF ait une section Version INF avec une directive CatalogFile qui pointe vers un fichier catalogue signé qui contient le hachage du fichier INF et tous les fichiers auxquels le fichier INF fait référence via une section INF SourceDisksFiles.

Attention

En cas d’utilisation sur un système dont l’architecture native n’est ni x86 ni amd64, InstallHInfSection doit être utilisé à partir d’un processus d’architecture native. InstallHInfSection bloque de nombreux types d’opérations de modification de l’état du système lorsqu’elles sont utilisées à partir d’un processus d’architecture non native.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows XP [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2003 [applications de bureau uniquement]
Plateforme cible Windows
En-tête setupapi.h
Bibliothèque Setupapi.lib
DLL Setupapi.dll