Partager via


InstallHinfSectionW, fonction (setupapi.h)

[Cette fonction est disponible pour une utilisation 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 l’installation d’applications. Utilisez plutôt Windows Installer pour développer des programmes d’installation d’applications. SetupAPI continue d’être utilisé pour l’installation des 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. Si des services sont installés, l’appelant de cette fonction doit avoir accès au Gestionnaire de contrôle de service.

Syntaxe

void InstallHinfSectionW(
  [in] HWND      Window,
  [in] HINSTANCE ModuleHandle,
  [in] PCWSTR    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 doit 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 qu’il existe trois exportations : 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<

Cela passe le « chemin du> mode<>section<>» à CmdLineBuffer.<

Votre programme peut également appeler Directement InstallHinfSection, InstallHinfSectionA ou InstallHinfSectionW , en définissant le paramètre CmdLineBuffer comme suit.

"<section> <mode> <path>"

chemin d’accès est le chemin d’accès complet au fichier .inf, le mode est le paramètre de mode de redémarrage et la 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 le mode. Vous devez inclure 128 pour définir le chemin d’accès par défaut de l’installation sur 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 un redémarrage inutile ou ne pas redémarrer 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 du fichier 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 de 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 comme un 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. Le mélange 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 exige 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 que le fichier INF référence via une section INF SourceDisksFiles.

Attention

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

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