Функция 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 для доступа к файлам в пакете драйверов , который предварительно установлен в хранилище драйверов. Чтобы определить путь к пакету драйверов в хранилище драйверов, установщик выполняет следующие действия:
- Вызовите SetupDiGetDriverInfoDetail , чтобы получить структуру SP_DRVINFO_DETAIL_DATA для драйвера. Член InfFileName этой структуры содержит полное имя inf-файла драйвера в системном каталоге INF.
- Вызовите setupGetInfDriverStoreLocation и укажите полное имя INF-файла драйвера, полученного путем вызова SetupDiGetDriverInfoDetail. SetupGetInfDriverStoreLocation вернет полное имя inf-файла драйвера в хранилище драйверов. Путь к каталогу полного имени INF-файла — это путь к файлам пакета драйверов .
Примечание
Заголовок setupapi.h определяет SetupGetInfDriverStoreLocation в качестве псевдонима, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОД. Использование псевдонима, не зависящий от кодирования, с кодом, который не является нейтральным для кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или времени выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Доступно в Windows Vista и более поздних версиях Windows. |
Целевая платформа | Персональный компьютер |
Верхняя часть | setupapi.h (включая Setupapi.h) |
Библиотека | Setupapi.lib |