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

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

Функция SetupInstallFilesFromInfSection помещает в очередь все файлы для установки, указанные в разделах Копирование файлов, Удаление файлов и Переименование файлов, перечисленных в разделе Установка.

При изменении файла вызывающий объект этой функции должен иметь привилегии для записи в целевой каталог.

Синтаксис

WINSETUPAPI BOOL SetupInstallFilesFromInfSectionA(
  [in] HINF     InfHandle,
  [in] HINF     LayoutInfHandle,
  [in] HSPFILEQ FileQueue,
  [in] PCSTR    SectionName,
  [in] PCSTR    SourceRootPath,
  [in] UINT     CopyFlags
);

Параметры

[in] InfHandle

Дескриптор INF-файла, содержащего устанавливаемый раздел.

[in] LayoutInfHandle

Необязательный указатель на дескриптор INF-файла, который содержит разделы SourceDisksFiles и SourceDisksNames.

Если параметр LayoutInfHandle не указан, используются разделы SourceDisksFiles и SourceDisksNames из InfHandle .

[in] FileQueue

Дескриптор очереди, в которой необходимо добавить операции установки.

[in] SectionName

Имя раздела Install в параметре InfHandle , в котором перечислены разделы Копирование файлов, Удаление файлов и Переименование файлов, которые содержат устанавливаемые файлы.

Используйте строку, завершаемую null.

[in] SourceRootPath

Необязательный указатель на корневой путь к исходным файлам для копирования, например A:\ или \pegasus\win\install.

Используйте строку, завершаемую null.

[in] CopyFlags

Необязательный указатель на набор флагов, управляющих поведением операции копирования файла.

Флаги могут быть комбинацией следующих значений.

SP_COPY_DELETESOURCE

Удаляет исходный файл при успешном выполнении задачи копирования.

Вызывающий объект не получает уведомление в случае сбоя задачи удаления.

SP_COPY_REPLACEONLY

Копирует файл только для перезаписи файла по пути назначения.

SP_COPY_NEWER_OR_SAME

Проверяет каждый копируемый файл, чтобы определить, указывают ли ресурсы версии, что это та же версия или не новее существующей копии в целевом объекте.

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

Сведения о версии файла, используемые при проверке версии, указываются в членах dwFileVersionMS и dwFileVersionLSструктуры VS_FIXEDFILEINFO , как указано в функциях версии Win32.

Если у одного из файлов нет ресурсов версии или они содержат идентичные сведения о версии, исходный файл считается более новым.

SP_COPY_NEWER_ONLY

Проверяет каждый копируемый файл, чтобы определить, указывают ли ресурсы его версии на то, что он не новее существующей копии в целевом объекте.

Если исходный файл является более новым, но по версии не равен существующему целевому объекту, файл копируется.

SP_COPY_NOOVERWRITE

Проверяет, существует ли целевой файл.

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

SP_COPY_NODECOMP

Не распаковка файла.

Если этот флаг установлен, целевому файлу не присваивается несжатая форма исходного имени. Например, если скопировать f:\x86\cmd.ex_ в папку \install\temp, результатом будет следующий целевой файл: \install\temp\cmd.ex_.

Если флаг SP_COPY_NODECOMP не указан, файл распаковывается, а целевой объект вызывается \install\temp\cmd.exe.

Часть имени файла в destinationName, если она указана, удаляется и заменяется именем файла исходного файла. Если указан SP_COPY_NODECOMP, проверить сведения о языке и версии невозможно.

SP_COPY_LANGUAGEAWARE

Проверяет каждый копируемый файл, чтобы определить, отличается ли язык от языка любого существующего файла, уже размещенного в целевом объекте.

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

SP_COPY_SOURCE_ABSOLUTE

SourceFile — это полный исходный путь.

Не ищите его в разделе SourceDisksNames INF-файла.

SP_COPY_SOURCEPATH_ABSOLUTE

SourcePathRoot — это полный путь к исходному файлу.

Игнорируйте относительный источник, указанный в разделе SourceDisksNames INF-файла для исходного носителя, на котором находится файл. Этот флаг игнорируется, если указан SP_COPY_SOURCE_ABSOLUTE.

SP_COPY_FORCE_IN_USE

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

SP_COPY_IN_USE_NEEDS_REBOOT

Оповещает пользователя о необходимости перезагрузки системы, если файл используется во время операции копирования.

SP_COPY_NOSKIP

Не дает пользователю возможность пропустить файл.

SP_COPY_FORCE_NOOVERWRITE

Проверяет, существует ли целевой файл, и если целевой объект существует, файл не перезаписывается и вызывающий объект не получает уведомления.

SP_COPY_FORCE_NEWER

Проверяет каждый копируемый файл, чтобы определить, что его ресурсы версии (или метки времени для файлов, не являющихся изображениями) указывают на то, что они не новее существующей копии в целевом объекте.

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

SP_COPY_WARNIFSKIP

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

Используйте этот флаг для критически важных для системы файлов.

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

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

Если функция завершается сбоем, возвращается значение 0 (ноль). Дополнительные сведения об ошибке можно получить, вызвав GetLastError.

Комментарии

SetupInstallFilesFromInfSection можно вызывать несколько раз для постановки в очередь файлов, указанных в нескольких разделах INF. После успешной фиксации очереди и копирования, переименования и удаления файлов можно вызвать SetupInstallFromInfSection для выполнения операций установки реестра и INI.

Если UNC-каталог указан в качестве целевого каталога для установки файла, необходимо убедиться, что каталог UNC существует, прежде чем вызывать SetupInstallFilesFromInfSection. Функции установки не проверка существования каталогов и не создают каталоги UNC. Если целевой UNC-каталог не существует, установка файла завершается ошибкой.

Примечание

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

Требования

Требование Значение
Минимальная версия клиента Windows XP [только классические приложения]
Минимальная версия сервера Windows Server 2003 [только классические приложения]
Целевая платформа Windows
Header setupapi.h
Библиотека Setupapi.lib
DLL Setupapi.dll

См. также

Функции

Обзор

SetupInstallFromInfSection

SetupInstallServicesFromInfSection