SetupInstallFromInfSectionW, 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.]
La fonction SetupInstallFromInfSection exécute toutes les directives d’un fichier INF section Installer.
Si le registre ou le fichier est modifié, l’appelant de cette fonction est tenu d’avoir des privilèges d’écriture dans le répertoire système ou cible.
Syntaxe
WINSETUPAPI BOOL SetupInstallFromInfSectionW(
HWND Owner,
HINF InfHandle,
PCWSTR SectionName,
UINT Flags,
HKEY RelativeKeyRoot,
PCWSTR SourceRootPath,
UINT CopyFlags,
PSP_FILE_CALLBACK_W MsgHandler,
PVOID Context,
HDEVINFO DeviceInfoSet,
PSP_DEVINFO_DATA DeviceInfoData
);
Paramètres
Owner
Pointeur facultatif vers le handle de fenêtre vers la fenêtre qui possède toutes les boîtes de dialogue générées pendant l’installation, par exemple pour l’invite de disque ou la copie de fichiers. Si propriétaire n’est pas spécifié, ces boîtes de dialogue deviennent des fenêtres de niveau supérieur.
InfHandle
Gérez le fichier INF qui contient la section à traiter.
SectionName
Nom de la section Installer dans le fichier INF à traiter.
Flags
Contrôle les actions à effectuer. Les indicateurs peuvent être une combinaison des valeurs suivantes.
SPINST_INIFILES
Effectuez des opérations de fichier INI (UpdateInis, lignes UpdateIniFields dans la section Installer en cours de traitement).
SPINST_REGISTRY
Effectuez des opérations de Registre (
SPINST_INI2REG
Effectuez des opérations de registre dans le fichier INI (lignes ini2Reg dans la section Installer en cours de traitement).
SPINST_LOGCONFIG
Cet indicateur est utilisé uniquement lors de l’installation d’un pilote de périphérique.
Effectuez des opérations de configuration logique (lignes LogConf dans la section Installer en cours de traitement). Cet indicateur est utilisé uniquement si DeviceInfoSet et deviceInfoData sont spécifiés.
Pour plus d’informations sur l’installation des pilotes de périphérique,
SPINST_FILES
Effectuez des opérations de fichier (
SPINST_ALL
Effectuez toutes les opérations d’installation.
SPINST_REGISTERCALLBACKAWARE
Lorsque vous utilisez la directive RegisterDlls INF pour inscrire automatiquement des DLL sur Windows 2000, les appelants de SetupInstallFromInfSection peuvent recevoir des notifications sur chaque fichier tel qu’il est inscrit ou non inscrit. Pour envoyer une notification de SPFILENOTIFY_STARTREGISTRATION ou de SPFILENOTIFY_ENDREGISTRATION à la routine de rappel, incluez SPINST_REGISTERCALLBACKAWARE plus SPINST_REGSVR ou SPINST_UNREGSVR. L’appelant doit également définir le paramètre MsgHandler.
SPINST_REGSVR
Pour envoyer une notification à la routine de rappel lors de l’inscription d’un fichier, incluez SPINST_REGISTERCALLBACKAWARE plus SPINST_REGSVR dans indicateurs. L’appelant doit également spécifier le paramètre MsgHandler.
SPINST_UNREGSVR
Pour envoyer une notification à la routine de rappel lors de l’annulation de l’inscription d’un fichier, incluez SPINST_REGISTERCALLBACKAWARE plus SPINST_UNREGSVR dans les indicateurs de . L’appelant doit également spécifier le paramètre MsgHandler.
RelativeKeyRoot
Paramètre facultatif qui doit être spécifié si indicateurs inclut SPINST_REGISTRY ou SPINST_INI2REG. Gérez une clé de Registre à utiliser comme racine lorsque le fichier INF spécifie HKR comme clé. Notez que ce paramètre est ignoré si setupInstallFromInfSection est appelé avec le DeviceInfoSet facultatif et deviceInfoData défini.
SourceRootPath
Racine source pour les copies de fichiers. Par exemple, A :\ ou \pegasus\win\install. Si indicateurs inclut SPINST_FILES et SourceRootPath a la valeur NULL, le système fournit un chemin racine par défaut.
CopyFlags
Paramètre facultatif qui doit être spécifié si indicateurs inclut SPINST_FILES. Spécifie les indicateurs à passer à la fonction SetupQueueCopySection lorsque les fichiers sont mis en file d’attente pour copie. Ces indicateurs peuvent être une combinaison des valeurs suivantes.
SP_COPY_DELETESOURCE
Supprimez le fichier source lors de la copie réussie. L’appelant n’est pas averti si la suppression échoue.
SP_COPY_REPLACEONLY
Copiez le fichier uniquement si cela remplacerait un fichier au niveau du chemin d’accès de destination.
SP_COPY_NEWER_OR_SAME
Examinez chaque fichier copié pour voir si ses ressources de version indiquent qu’il s’agit soit de la même version, soit pas plus récente qu’une copie existante sur la cible.
Les informations de version de fichier utilisées lors des vérifications de version sont spécifiées dans la dwFileVersionMS et membres dwFileVersionLS d’une structure VS_FIXEDFILEINFO, comme renseigné par les fonctions de version. Si l’un des fichiers n’a pas de ressources de version ou s’ils ont des informations de version identiques, le fichier source est considéré comme plus récent.
Si le fichier source n’est pas égal à la version ou version ultérieure, et CopyMsgHandler est spécifié, l’appelant est averti et peut annuler la copie. Si copyMsgHandler n’est pas spécifié, le fichier n’est pas copié.
SP_COPY_NEWER_ONLY
Examinez chaque fichier copié pour voir si ses ressources de version indiquent qu’il n’est pas plus récent qu’une copie existante sur la cible. Si le fichier source est plus récent, mais pas égal à la version de la cible existante, le fichier est copié.
SP_COPY_NOOVERWRITE
Vérifiez si le fichier cible existe et, le cas échéant, informez l’appelant qui peut opposer son veto à la copie. Si CopyMsgHandler n’est pas spécifié, le fichier n’est pas remplacé.
SP_COPY_NODECOMP
Ne décompressez pas le fichier. Lorsque cet indicateur est défini, le fichier cible ne reçoit pas la forme non compressée du nom source (le cas échéant). Par exemple, la copie de f :/x86\cmd.ex_ dans \install\temp génère un fichier cible de \install\temp\cmd.ex_. Si l’indicateur SP_COPY_NODECOMP n’a pas été spécifié, le fichier est décompressé et la cible est appelée \install\temp\cmd.exe. La partie nom de fichier de DestinationName, si spécifié, est supprimée et remplacée par le nom de fichier source. Lorsque SP_COPY_NODECOMP est spécifié, aucune langue ou aucune information de version ne peut être vérifiée.
SP_COPY_LANGUAGEAWARE
Examinez chaque fichier copié pour voir si sa langue diffère de la langue d’un fichier existant déjà sur la cible. Dans ce cas, et CopyMsgHandler est spécifié, l’appelant est averti et peut annuler la copie. Si copyMsgHandler n’est pas spécifié, le fichier n’est pas copié.
SP_COPY_SOURCE_ABSOLUTE
sourceFile est un chemin d’accès source complet. Ne recherchez pas dans la section SourceDisksNames du fichier INF.
SP_COPY_SOURCEPATH_ABSOLUTE
sourcePathRoot est la partie de chemin d’accès complet du fichier source. Ignorez la source relative spécifiée dans la SourceDisksNames section du fichier INF pour le média source où se trouve le fichier. Cet indicateur est ignoré si SP_COPY_SOURCE_ABSOLUTE est spécifié.
SP_COPY_FORCE_IN_USE
Si la cible existe, se comporte comme si elle était en cours d’utilisation et mettez en file d’attente le fichier à copier lors du prochain redémarrage du système.
SP_COPY_IN_USE_NEEDS_REBOOT
Si le fichier était en cours d’utilisation pendant l’opération de copie, informez l’utilisateur que le système doit être redémarré. Cet indicateur est utilisé uniquement lors de l’appel ultérieur SetupPromptReboot ou SetupScanFileQueue.
SP_COPY_NOSKIP
Ne donnez pas à l’utilisateur la possibilité d’ignorer un fichier.
SP_COPY_FORCE_NOOVERWRITE
Vérifiez si le fichier cible existe et, le cas échéant, le fichier n’est pas remplacé. L’appelant n’est pas averti.
SP_COPY_FORCE_NEWER
Examinez chaque fichier copié pour voir si ses ressources de version (ou horodatages pour les fichiers non-image) indiquent qu’il n’est pas plus récent qu’une copie existante sur la cible. Si le fichier en cours de copie n’est pas plus récent, le fichier n’est pas copié. L’appelant n’est pas averti.
SP_COPY_WARNIFSKIP
Si l’utilisateur tente d’ignorer un fichier, avertissez-les que le fait d’ignorer un fichier peut affecter l’installation. (Utilisé pour les fichiers critiques système.)
MsgHandler
Pointeur vers la routine de rappel. La routine de rappel doit être au format de FileCallback. Pour plus d’informations, consultez notifications.
Ce paramètre est facultatif uniquement si le paramètre indicateurs de
MsgHandler doit être définie si indicateurs inclut SPINST_FILES. Dans ce cas, la notification est envoyée à la routine de rappel lorsque la file d’attente de fichiers est validée avec SetupCommitFileQueue.
MsgHandler doit être définie si indicateurs inclut SPINST_REGISTERCALLBACKAWARE plus SPINST_REGSVR ou SPINST_UNREGSVR. Dans ce cas, une SPFILENOTIFY_STARTREGISTRATION ou SPFILENOTIFY_ENDREGISTRATION est envoyée à la routine de rappel une fois qu’un fichier est inscrit ou non inscrit à l’aide de la directive RegisterDlls INF sur Windows 2000.
Context
Valeur à passer à la fonction de rappel lorsque la file d’attente de fichiers générée par cette routine est validée en interne via SetupCommitFileQueue. Le paramètre Context est facultatif uniquement si le paramètre Indicateurs n’inclut pas SPINST_FILES. Ce paramètre doit être spécifié si indicateurs inclut SPINST_FILES.
DeviceInfoSet
Pointeur facultatif vers un handle vers un jeu d’informations d’appareil. Pour plus d’informations sur les fonctions d’installation de Device Installer, consultez le Guide du programmeur DDK.
DeviceInfoData
Pointeur facultatif vers un pointeur vers la structure SP_DEVINFO_DATA qui fournit un contexte à un élément spécifique dans l’ensemble spécifié par DeviceInfoSet. Pour plus d’informations sur les fonctions d’installation de Device Installer, consultez le Guide du programmeur DDK.
Valeur de retour
Si la fonction réussit, la valeur de retour est une valeur différente de zéro.
Si la fonction échoue, la valeur de retour est égale à zéro. Pour obtenir des informations d’erreur étendues, appelez GetLastError.
Remarques
Si un répertoire UNC est spécifié comme répertoire cible d’une opération de copie de fichier, vous devez vous assurer qu’il existe avant d’appeler SetupInstallFromInfSection. Les fonctions d’installation ne vérifient pas l’existence des répertoires UNC et ne créent pas de répertoires UNC. Si le répertoire UNC cible n’existe pas, l’installation du fichier échoue.
Cette fonction nécessite un fichier Windows INF. Certains formats de fichiers INF plus anciens peuvent ne pas être pris en charge.
Note
L’en-tête setupapi.h définit SetupInstallFromInfSection 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.
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 |
ensemble d’API | ext-ms-win-setupapi-classinstallers-l1-1-2 (introduit dans Windows 10, version 10.0.14393) |