структура SP_FILE_COPY_PARAMS_A (setupapi.h)
Структура SP_FILE_COPY_PARAMS описывает одну операцию копирования файлов.
Синтаксис
typedef struct _SP_FILE_COPY_PARAMS_A {
DWORD cbSize;
HSPFILEQ QueueHandle;
PCSTR SourceRootPath;
PCSTR SourcePath;
PCSTR SourceFilename;
PCSTR SourceDescription;
PCSTR SourceTagfile;
PCSTR TargetDirectory;
PCSTR TargetFilename;
DWORD CopyStyle;
HINF LayoutInf;
PCSTR SecurityDescriptor;
} SP_FILE_COPY_PARAMS_A, *PSP_FILE_COPY_PARAMS_A;
Члены
cbSize
Размер структуры в байтах. Задайте значение: sizeof(SP_FILE_COPY_PARAMS)
.
QueueHandle
Обработайте очередь файла установки, как возвращается SetupOpenFileQueue.
SourceRootPath
Необязательный указатель на корневой каталог источника для этой копии, например A:.
SourcePath
Необязательный указатель на путь относительно SourceRootPath, где можно найти файл.
SourceFilename
Имя файла, копируемый.
SourceDescription
Необязательный указатель на описание исходного носителя, который будет использоваться во время запросов на диск.
SourceTagfile
Необязательный указатель на файл тега, присутствие которого на SourceRootPath указывает на наличие исходного носителя. Если он не указан, сам файл будет использоваться в качестве файла тега при необходимости.
TargetDirectory
Каталог, в котором копируется файл.
TargetFilename
Необязательный указатель на имя целевого файла. Если он не указан, целевой файл будет иметь то же имя, что и исходный файл.
CopyStyle
Флаги, управляющие поведением операции копирования файлов. Эти флаги могут быть сочетанием следующих значений.
Ценность | Значение |
---|---|
|
Удалите исходный файл после успешной копии. Вызывающий объект уведомляется, если удаление завершается ошибкой. |
|
Скопируйте файл только в том случае, если это приведет к перезаписи файла в пути назначения. Вызывающий объект уведомляется. |
|
Проверьте каждый файл, копируемый, чтобы узнать, указывает ли его ресурсы версии на то, что она является той же версией или не более новой, чем существующая копия в целевом объекте.
Сведения о версии файла, используемые во время проверок версий, указываются в dwFileVersionMS и dwFileVersionLS членов структуры VS_FIXEDFILEINFO, как указано в функциях версии. Если у одного из файлов нет ресурсов версии или если они имеют идентичные сведения о версии, исходный файл считается более новым. Если исходный файл не равен версии или более поздней версии, а указана CopyMsgHandler, вызывающий объект уведомляется и может отменить копию. Если CopyMsgHandler не указан, файл не копируется. |
|
Проверьте каждый файл, копируемый, чтобы узнать, являются ли его ресурсы версии более новой, чем существующую копию в целевом объекте. Если исходный файл является более новым, но не равен в версии существующего целевого объекта, файл копируется. |
|
Проверьте, существует ли целевой файл, и если да, уведомите вызывающего абонента, который может ветоить копию. Если CopyMsgHandler не указан, файл не перезаписывается. |
|
Не распаковывайте файл. Если этот флаг задан, целевой файл не получает несжатую форму исходного имени (при необходимости). Например, копирование f:\x86\cmd.ex_ в \\install\temp приводит к целевому файлу \\install\temp\cmd.ex_. Если флаг SP_COPY_NODECOMP не указан, файл будет распаковлен, а целевой объект будет вызываться \\install\temp\cmd.exe. Имя файла, часть DestinationName, если указано, удаляется и заменяется именем файла исходного файла. При указании SP_COPY_NODECOMP нет сведений о языке или версии. |
|
Изучите каждый файл, копируемый, чтобы узнать, отличается ли его язык от языка любого существующего файла, уже размещенного в целевом объекте. Если это так, и указана CopyMsgHandler, вызывающий объект уведомляется и может отменить копию. Если CopyMsgHandler не указан, файл не копируется. |
|
SourceFile — это полный путь к источнику. Не ищите его в разделе SourceDisksNames в INF-файле. |
|
SourcePathRoot является полной частью исходного файла. Игнорируйте относительный источник, указанный в разделе SourceDisksNames в INF-файле исходного носителя, где находится файл. Этот флаг игнорируется, если указан SP_COPY_SOURCE_ABSOLUTE. |
|
Если целевой объект существует, действуют так, как если бы он использовался, и в очереди файл для копирования на следующую перезагрузку системы. |
|
Если файл использовался во время операции копирования, оповещайте пользователя о необходимости перезагрузки системы. |
|
Не предоставляйте пользователю возможность пропускать файл. |
|
Проверьте, существует ли целевой файл и если да, файл не перезаписан. Вызывающий объект уведомляется. |
|
Просмотрите каждый файл, копируемый, чтобы узнать, являются ли его ресурсы версии (или метки времени для файлов, не являющихся изображениями), что это не более новая копия в целевом объекте. Если копируемый файл не является более новым, файл не копируется. Вызывающий объект уведомляется. |
|
Если пользователь пытается пропустить файл, предупредите их о том, что пропуск файла может повлиять на установку. (Используется для системных критически важных файлов.) |
LayoutInf
Чтобы получить исходную информацию, дескриптор с помощью INF.
SecurityDescriptor
Необязательная строка дескриптора безопасности, указывающая ACL для применения к файлу.
Замечания
Заметка
Заголовок setupapi.h определяет SP_FILE_COPY_PARAMS как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Windows XP [только классические приложения] |
минимальный поддерживаемый сервер | Windows Server 2003 [только классические приложения] |
заголовка | setupapi.h |
См. также
Обзор