Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Функция 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 |