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


Функция 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

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

Используйте строку null-terminated.

[in] SourceRootPath

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

Используйте строку null-terminated.

[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.

При указании имя файла имя_файла удаляется и заменяется именем файла исходного файла. При указании 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 [только классические приложения]
целевая платформа Виндоус
заголовка setupapi.h
библиотеки Setupapi.lib
DLL Setupapi.dll

См. также

Функции

Обзор

SetupInstallFromInfSection

SetupInstallServicesFromInfSection