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


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

[Эта функция доступна для использования в операционных системах, указанных в разделе "Требования". Он может быть изменен или недоступен в последующих версиях. SetupAPI больше не следует использовать для установки приложений. Вместо этого используйте установщик Windows для разработки установщиков приложений. SetupAPI по-прежнему используется для установки драйверов устройств.]

Функция установки SetupGetSourceFileLocation извлекает расположение исходного файла, указанного в INF-файле.

Синтаксис

WINSETUPAPI BOOL SetupGetSourceFileLocationA(
  [in]      HINF        InfHandle,
  [in]      PINFCONTEXT InfContext,
  [in]      PCSTR       FileName,
  [in, out] PUINT       SourceId,
  [in, out] PSTR        ReturnBuffer,
  [out]     DWORD       ReturnBufferSize,
  [in, out] PDWORD      RequiredSize
);

Параметры

[in] InfHandle

Обработайте INF-файл, содержащий разделы SourceDisksNames и SourceDisksFiles. Если разделы для конкретной платформы существуют для системы пользователя (например, SourceDisksNames.x86 и SourceDisksFiles.x86), будет использоваться раздел, зависящий от платформы.

[in] InfContext

Необязательный указатель на контекст строки в разделе копирования файлов, для которого требуется получить полный путь к источнику. Если этот параметр NULL, Имя файла выполняется поиск в разделе SourceDisksFiles INF-файла, указанного InfHandle.

[in] FileName

Необязательный указатель на строку null-terminated, содержащую имя файла (без пути), для которого возвращается полное исходное расположение. Этот параметр может быть null, но необходимо указать Имя файла или InfContext.

[in, out] SourceId

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

[in, out] ReturnBuffer

Необязательный указатель на буфер для получения относительного исходного пути. Исходный путь не включает само имя файла, а также не содержит имя общей папки или буквы диска. Путь не начинается или заканчивается обратной косой чертой (), поэтому пустая строка указывает корневой каталог. Следует использовать строковый буфер, завершающийсяnull. Строка null-terminated не должна превышать размер целевого буфера. Вы можете вызвать функцию один раз, чтобы получить необходимый размер буфера, выделить необходимую память, а затем вызвать функцию во второй раз, чтобы получить данные. С помощью этого метода можно избежать ошибок из-за недостаточного размера буфера. См. раздел "Примечания". Этот параметр может быть NULL.

[out] ReturnBufferSize

Размер буфера, на который указывает ReturnBuffer, в символах. Это число включает в себя null конца.

[in, out] RequiredSize

Необязательный указатель на переменную, которая получает требуемый размер буфера, на который указывает параметр ReturnBuffer в символах. Это число включает в себя null конца. Если требуемый размер превышает значение, указанное ReturnBufferSize, функция завершается ошибкой и GetLastError возвращает ERROR_INSUFFICIENT_BUFFER.

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

Если функция выполнена успешно, возвращаемое значение является ненулевое значение.

Если функция завершается ошибкой, возвращаемое значение равно нулю. Чтобы получить расширенные сведения об ошибке, вызовите GetLastError.

Замечания

Если эта функция вызывается с ReturnBufferNULL и ReturnBufferSize нуля, функция помещает размер буфера, необходимый для хранения указанных данных в переменную, на которую указывает RequiredSize. Если функция выполнена успешно, возвращаемое значение ненулевое значение. В противном случае возвращаемое значение равно нулю и расширенным сведениям об ошибке можно получить путем вызова GetLastError.

Заметка

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

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows XP [только классические приложения]
минимальный поддерживаемый сервер Windows Server 2003 [только классические приложения]
целевая платформа Виндоус
заголовка setupapi.h
библиотеки Setupapi.lib
DLL Setupapi.dll

См. также

Функции

Обзор

SetupGetSourceFileSize

SetupGetSourceInfo