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 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 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 pouvez être appelée en appelant l’utilitaire Rundll32.exe comme décrit dans la section Notes.
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 d’écriture dans le répertoire cible. S’il existe des services en cours d’installation, l’appelant de cette fonction doit avoir accès à l'Service Control Manager.
Syntaxe
void InstallHinfSectionW(
[in] HWND Window,
[in] HINSTANCE ModuleHandle,
[in] PCWSTR CommandLine,
[in] INT ShowCommand
);
Paramètres
[in] Window
Handle de fenêtre parent. En règle générale, hwnd est Null.
[in] ModuleHandle
Réservé et doit être 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
Aucun
Remarques
Notez que trois exportations existent : InstallHinfSection (pour RunDll32), InstallHinfSectionAet InstallHinfSectionW.
Pour exécuter une section Installer d’un fichier .inf spécifié, vous pouvez appeler InstallHinfSection avec le Rundll32.exe à l’aide de la syntaxe suivante.
RUNDLL32.EXE SETUPAPI.DLL,InstallHinfSection <section><mode><chemin d’accès>
Cela passe «<section><mode><chemin d’accès>» à CmdLineBuffer.
Vous pouvez également appeler InstallHinfSection, InstallHinfSectionAou InstallHinfSectionW directement, en définissant le paramètre CmdLineBuffer sur ce qui suit.
"<section> <mode> <path>"
Où
Il est recommandé de spécifier le chemin complet du fichier .inf en tant que chemin d’accès .
Vous pouvez spécifier n’importe quelle section Installer dans le fichier .inf en tant que section. Aucun espace n’est autorisé.
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 non de l’ordinateur lorsqu’il 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 à 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 veulent 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’utilisateur l’autorisation 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 requis, l’utilisateur est invité à utiliser une boîte de dialogue « Redémarrer l’ordinateur, Oui/Non ».
RUNDLL32.EXE SETUPAPI.DLL,InstallHinfSection DefaultInstall 132 C :\WINDOWS\INF\SHELL. INF
Note
L’en-tête setupapi.h définit InstallHinfSection comme 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.
Prudence
Lorsqu’elle est utilisée sur une architecture autre que x86 ou amd64, ou lorsqu’elle est utilisée sur un système en mode S, InstallHInfSection exige que le fichier INF dispose d’une section version INF avec une directive CatalogFile qui pointe vers un fichier catalogue signé qui contient le hachage du fichier INF et les fichiers auxquels le fichier INF fait référence via une section INF SourceDisksFiles.
Prudence
Lorsqu’il est utilisé sur un système dont l’architecture native n’est pas x86 ni amd64, InstallHInfSection doit être utilisé à partir d’un processus d’architecture natif. InstallHInfSection bloque de nombreux types d’opérations de changement d’état système lorsqu’elles sont utilisées à partir d’un processus d’architecture non natif.
Exigences
Exigence | Valeur |
---|---|
client minimum pris en charge | Windows XP [applications de bureau uniquement] |
serveur minimum pris en charge | Windows Server 2003 [applications de bureau uniquement] |
plateforme cible | Windows |
d’en-tête | setupapi.h |
bibliothèque | Setupapi.lib |
DLL | Setupapi.dll |