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


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

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

Синтаксис

WINSETUPAPI BOOL SetupGetInfDriverStoreLocationW(
  [in]            PCWSTR               FileName,
  [in, optional]  PSP_ALTPLATFORM_INFO AlternatePlatformInfo,
  [in, optional]  PCWSTR               LocaleName,
  [out]           PWSTR                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-файла, включая пустой терминатор, больше ReturnBufferSize, функция завершится ошибкой, а вызов getLastError вернет ERROR_INSUFFICIENT_BUFFER.

Замечания

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

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

SetupGetInfDriverStoreLocation возвращает полное имя файла INF в хранилище драйверов, соответствующего 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, если Имя_файла предоставляет одну из следующих строк: 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 или Юникод этой функции на основе определения константы препроцессора UNICODE. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Доступно в Windows Vista и более поздних версиях Windows.
целевая платформа Настольный
заголовка setupapi.h (include Setupapi.h)
библиотеки Setupapi.lib

См. также

SP_ALTPLATFORM_INFO

SP_DRVINFO_DETAIL_DATA

SetupDiGetDriverInfoDetail

SetupGetInfPublishedName