Fonction SetupGetInfDriverStoreLocationA (setupapi.h)
La fonction SetupGetInfDriverStoreLocation récupère le nom de fichier complet (chemin du répertoire et nom de fichier) d’un fichier INF dans le magasin de pilotes qui correspond à un fichier INF spécifié dans le répertoire de fichiers INF système ou à un fichier INF spécifié dans le magasin de pilotes.
Syntaxe
WINSETUPAPI BOOL SetupGetInfDriverStoreLocationA(
[in] PCSTR FileName,
[in, optional] PSP_ALTPLATFORM_INFO AlternatePlatformInfo,
[in, optional] PCSTR LocaleName,
[out] PSTR ReturnBuffer,
[in] DWORD ReturnBufferSize,
[out, optional] PDWORD RequiredSize
);
Paramètres
[in] FileName
Pointeur vers une chaîne terminée par null qui contient le nom, et éventuellement le chemin du répertoire complet, d’un fichier INF dans le répertoire de fichiers INF système. Ce paramètre est également un pointeur vers une chaîne terminée par NULL qui contient le nom de fichier complet (chemin d’accès du répertoire et nom de fichier) d’un fichier INF dans le magasin de pilotes.
Pour plus d’informations sur la spécification du fichier INF, consultez la section Remarques suivante.
[in, optional] AlternatePlatformInfo
Réservé pour le système.
[in, optional] LocaleName
Réservé pour le système.
[out] ReturnBuffer
Pointeur vers une mémoire tampon dans laquelle la fonction retourne une chaîne terminée par NULL qui contient le nom de fichier complet du fichier INF spécifié. Ce paramètre peut être défini sur NULL. La taille maximale du chemin d’accès pris en charge est MAX_PATH. Pour plus d’informations sur la façon de déterminer la taille requise de la mémoire tampon, consultez la section Remarques suivante.
[in] ReturnBufferSize
Taille, en caractères, de la mémoire tampon fournie par ReturnBuffer.
[out, optional] RequiredSize
Pointeur vers une variable de type DWORD qui reçoit la taille, en caractères, de la mémoire tampon ReturnBuffer . Ce paramètre est facultatif et peut être défini sur NULL.
Valeur retournée
Si SetupGetInfDriverStoreLocation réussit, la fonction retourne TRUE ; sinon, la fonction retourne FALSE. Pour obtenir des informations d’erreur étendues, appelez GetLastError.
Si la taille, en caractères, du nom de fichier complet du fichier INF demandé, y compris un terme null, est supérieure à ReturnBufferSize, la fonction échoue et un appel à GetLastError retourne ERROR_INSUFFICIENT_BUFFER.
Remarques
Pour déterminer la taille de la mémoire tampon de retour requise pour contenir le nom de fichier complet du fichier INF spécifié dans le magasin de pilotes, appelez SetupGetInfDriverStoreLocation et définissezReturnBuffer sur NULL, ReturnBufferSize sur zéro et fournissez RequiredSize. SetupGetInfDriverStoreLocation retourne la taille de mémoire tampon requise dans RequiredSize.
Lorsque l’installation de l’appareil préinstalle un package de pilotes dans le magasin de pilotes, elle crée deux copies du fichier INF du package de pilotes. L’installation de l’appareil installe une copie dans le répertoire INF système et affecte à cette copie du fichier INF un nom de fichier publié unique sous la forme OEMnnn.inf. L’installation de l’appareil installe une deuxième copie du fichier INF dans le magasin de pilotes et affecte le nom du fichier INF d’origine.
SetupGetInfDriverStoreLocation retourne le nom de fichier complet du fichier INF dans le magasin de pilotes qui correspond au fichier INF, le cas échéant, fourni par FileName. Le nom de fichier doit spécifier le nom de fichier, et éventuellement le chemin du répertoire, d’un fichier INF dans le répertoire INF système. Vous pouvez également spécifier le nom de fichier complet d’un fichier INF dans le magasin de pilotes.
Par exemple, supposons que le fichier INF d’un package de pilotes est Myinf.inf et que pour ce package de pilotes, l’installation de l’appareil installe le fichier INF OEM1.inf dans le répertoire INF système C :\Windows\inf. En outre, supposons que l’installation de l’appareil installe la copie de fichier INF correspondante C :\windows\system32\driverstore\filerepository\myinf_12345678\myinf.inf dans le magasin de pilotes. Dans ce cas, la fonction renvoie C :\windows\system32\driverstore\filerepository\myinf_12345678\myinf.inf si FileName fournit l’une des chaînes suivantes : OEM1.inf, C :\Windows\inf\OEM1.inf ou C :\windows\system32\driverstore\filerepository\myinf_12345678\myinf.inf.
Les programmes d’installation et lesco-programmes d’installation de classe peuvent utiliser SetupGetInfDriverStoreLocation pour accéder aux fichiers dans un package de pilotes préinstallé dans le magasin de pilotes. Pour déterminer le chemin du package de pilotes dans le magasin de pilotes, le programme d’installation effectue les opérations suivantes :
- Appelez SetupDiGetDriverInfoDetail pour récupérer une structure SP_DRVINFO_DETAIL_DATA pour un pilote. Le membre InfFileName de cette structure contient le nom de fichier complet du fichier INF du pilote dans le répertoire INF système.
- Appelez SetupGetInfDriverStoreLocation et fournissez le nom de fichier complet du fichier INF du pilote qui a été récupéré en appelant SetupDiGetDriverInfoDetail. SetupGetInfDriverStoreLocation retourne le nom de fichier complet du fichier INF du pilote dans le magasin de pilotes. La partie chemin du répertoire du nom de fichier complet du fichier INF est le chemin d’accès des fichiers de package de pilotes .
Notes
L’en-tête setupapi.h définit SetupGetInfDriverStoreLocation 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.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Disponible dans Windows Vista et les versions plus récentes de Windows. |
Plateforme cible | Desktop (Expérience utilisateur) |
En-tête | setupapi.h (inclure Setupapi.h) |
Bibliothèque | Setupapi.lib |