Поделиться через


Функция SetupGetInfDriverStoreLocationA (setupapi.h)

Функция SetupGetInfDriverStoreLocation извлекает полное имя файла (путь к каталогу и имя файла) INF-файла в хранилище драйверов, соответствующее указанному INF-файлу в системном каталоге INF-файла или указанному INF-файлу в хранилище драйверов.

Синтаксис

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
);

Параметры

[in] FileName

Указатель на строку, завершающуюся значением NULL, которая содержит имя и при необходимости полный путь к каталогу INF-файла в системном каталоге INF-файла. Кроме того, этот параметр является указателем на строку, завершающуюся значением NULL, которая содержит полное имя файла (путь к каталогу и имя файла) INF-файла в хранилище драйверов.

Дополнительные сведения о том, как указать INF-файл, см. в следующем разделе Примечаний .

[in, optional] AlternatePlatformInfo

Зарезервировано для системного использования.

[in, optional] LocaleName

Зарезервировано для системного использования.

[out] ReturnBuffer

Указатель на буфер, в котором функция возвращает строку, завершающуюся значением NULL, которая содержит полное имя указанного INF-файла. Для этого параметра можно задать значение NULL. Максимальный поддерживаемый размер пути — MAX_PATH. Сведения об определении требуемого размера буфера см. в следующем разделе Примечаний .

[in] ReturnBufferSize

Размер (в символах) буфера, предоставленного ReturnBuffer.

[out, optional] RequiredSize

Указатель на переменную типа DWORD, которая получает размер буфера ReturnBuffer в символах. Этот параметр является необязательным и может иметь значение NULL.

Возвращаемое значение

Если setupGetInfDriverStoreLocation завершается успешно, функция возвращает значение TRUE; В противном случае функция возвращает значение FALSE. Чтобы получить расширенные сведения об ошибке, вызовите Метод GetLastError.

Если размер (в символах) полного имени файла запрошенного INF-файла, включая символ конца NULL, больше, чем ReturnBufferSize, функция завершится ошибкой, и вызов GetLastError вернет ERROR_INSUFFICIENT_BUFFER.

Комментарии

Чтобы определить размер возвращаемого буфера, который должен содержать полное имя файла указанного INF-файла в хранилище драйверов, вызовите метод SetupGetInfDriverStoreLocation и задайте для returnBufferзначение NULL, ReturnBufferSize — нулевое значение и укажите RequiredSize. SetupGetInfDriverStoreLocation вернет требуемый размер буфера в requiredSize.

Когда установка устройства предварительно устанавливает пакет драйверов в хранилище драйверов, создается две копии INF-файла пакета драйверов. Установка устройства устанавливает одну копию в системный каталог INF и назначает этой копии INF-файла уникальное опубликованное имя файла в форме OEMnnn.inf. Установка устройства устанавливает вторую копию INF-файла в хранилище драйверов и назначает ей исходное имя INF-файла.

SetupGetInfDriverStoreLocation возвращает полное имя INF-файла в хранилище драйверов, соответствующее INF-файлу , если таковой имеется, предоставленному fileName. Имя файла должно указывать имя файла и при необходимости путь к каталогу INF-файла в системном каталоге INF. Кроме того, имя файла должно указывать полное имя INF-файла в хранилище драйверов.

Например, предположим, что INF-файл для пакета драйвера — Myinf.inf, а для этого пакета драйверов установка устройства устанавливает INF-файл OEM1.inf в системном каталоге INF C:\Windows\inf. Далее предположим, что установка устройства устанавливает соответствующую копию INF-файла C:\windows\system32\driverstore\filerepository\myinf_12345678\myinf.inf в хранилище драйверов. В этом случае функция возвращает C:\windows\system32\driverstore\filerepository\myinf_12345678\myinf.inf , если FileName предоставляет одну из следующих строк: OEM1.inf, C:\Windows\inf\OEM1.inf или C:\windows\system32\driverstore\filerepository\myinf_12345678\myinf.inf.

Установщики классов и соинсталляторы могут использовать SetupGetInfDriverStoreLocation для доступа к файлам в пакете драйверов , который предварительно установлен в хранилище драйверов. Чтобы определить путь к пакету драйверов в хранилище драйверов, установщик выполняет следующие действия:

  1. Вызовите SetupDiGetDriverInfoDetail , чтобы получить структуру SP_DRVINFO_DETAIL_DATA для драйвера. Член InfFileName этой структуры содержит полное имя inf-файла драйвера в системном каталоге INF.
  2. Вызовите setupGetInfDriverStoreLocation и укажите полное имя INF-файла драйвера, полученного путем вызова SetupDiGetDriverInfoDetail. SetupGetInfDriverStoreLocation вернет полное имя inf-файла драйвера в хранилище драйверов. Путь к каталогу полного имени INF-файла — это путь к файлам пакета драйверов .
Примечание. SetupGetInfDriverStoreLocation не обрабатывает содержимое INF-файла, указанного в параметре FileName. Эту функцию нельзя использовать для выполнения поиска INF-файла в хранилище драйверов для конкретного содержимого.
 
Вызовите функцию SetupGetInfPublishedName , чтобы получить полное имя INF-файла в системном каталоге INF-файлов, соответствующего указанному INF-файлу в системном каталоге INF-файлов или указанному файлу в хранилище драйверов.

Примечание

Заголовок setupapi.h определяет SetupGetInfDriverStoreLocation в качестве псевдонима, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОД. Использование псевдонима, не зависящий от кодирования, с кодом, который не является нейтральным для кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или времени выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.

Требования

Требование Значение
Минимальная версия клиента Доступно в Windows Vista и более поздних версиях Windows.
Целевая платформа Персональный компьютер
Верхняя часть setupapi.h (включая Setupapi.h)
Библиотека Setupapi.lib

См. также раздел

SP_ALTPLATFORM_INFO

SP_DRVINFO_DETAIL_DATA

SetupDiGetDriverInfoDetail

SetupGetInfPublishedName