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
控制文件复制操作行为的标志。 这些标志可以是以下值的组合。
值 | 含义 |
---|---|
|
复制成功后删除源文件。 如果删除失败,则不会通知调用方。 |
|
仅当这样做会覆盖目标路径中的文件时,才复制该文件。 不会通知调用方。 |
|
检查要复制的每个文件,查看其版本资源是否指示其版本相同或不高于目标上的现有副本。
版本检查期间使用的文件版本信息是在VS_FIXEDFILEINFO结构的 dwFileVersionMS 和 dwFileVersionLS 成员中指定的,由版本函数填充。 如果其中一个文件没有版本资源,或者它们具有相同的版本信息,则会将源文件视为较新。 如果源文件在版本或更高版本中不相等,并且指定 了 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 是完整的源路径。 不要在 INF 文件的 SourceDisksNames 部分中查找它。 |
|
SourcePathRoot 是源文件的完整路径部分。 忽略在 INF 文件的 SourceDisksNames 节中为文件所在的源媒体指定的相对源。 如果指定了SP_COPY_SOURCE_ABSOLUTE,则忽略此标志。 |
|
如果目标存在,则就像它正在使用一样,并在下次系统重新启动时将文件排队以复制。 |
|
如果在复制操作期间正在使用该文件,请提醒用户系统需要重新启动。 |
|
不要为用户提供跳过文件的选项。 |
|
检查目标文件是否存在,如果是,则不会覆盖该文件。 不会通知调用方。 |
|
检查要复制的每个文件,以查看其版本资源是否 (或非映像文件的时间戳,) 指示它不比目标上的现有副本更新。 如果要复制的文件不是较新的文件,则不会复制该文件。 不会通知调用方。 |
|
如果用户尝试跳过某个文件,请警告他们跳过某个文件可能会影响安装。 (用于系统关键文件。) |
LayoutInf
用于获取源信息的 INF 的句柄。
SecurityDescriptor
可选的安全描述符字符串,指定要应用于文件的 ACL。
注解
注意
setupapi.h 标头将SP_FILE_COPY_PARAMS定义为别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将非特定编码别名与非非特定编码的代码混合使用可能会导致不匹配,从而导致编译或运行时错误。 有关详细信息,请参阅 函数原型的约定。
要求
最低受支持的客户端 | Windows XP [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2003 [仅限桌面应用] |
标头 | setupapi.h |