SP_FILE_COPY_PARAMS_W结构(setupapi.h)

SP_FILE_COPY_PARAMS 结构描述单个文件复制操作。

语法

typedef struct _SP_FILE_COPY_PARAMS_W {
  DWORD    cbSize;
  HSPFILEQ QueueHandle;
  PCWSTR   SourceRootPath;
  PCWSTR   SourcePath;
  PCWSTR   SourceFilename;
  PCWSTR   SourceDescription;
  PCWSTR   SourceTagfile;
  PCWSTR   TargetDirectory;
  PCWSTR   TargetFilename;
  DWORD    CopyStyle;
  HINF     LayoutInf;
  PCWSTR   SecurityDescriptor;
} SP_FILE_COPY_PARAMS_W, *PSP_FILE_COPY_PARAMS_W;

成员

cbSize

结构的大小(以字节为单位)。 设置为值:sizeof(SP_FILE_COPY_PARAMS)

QueueHandle

SetupOpenFileQueue返回的安装程序文件队列的句柄。

SourceRootPath

指向此副本的源根目录的可选指针,例如 A:。

SourcePath

指向 SourceRootPath 路径的可选指针,可在其中找到该文件。

SourceFilename

要复制的文件的文件名部分。

SourceDescription

可选指针,指向在磁盘提示期间要使用的源媒体的说明。

SourceTagfile

指向在 sourceRootPath 状态 的标记文件的可选指针指示源媒体的存在。 如果未指定,文件本身将根据需要用作标记文件。

TargetDirectory

要复制文件的目录。

TargetFilename

指向目标文件名称的可选指针。 如果未指定,目标文件将具有与源文件相同的名称。

CopyStyle

控制文件复制操作行为的标志。 这些标志可以是以下值的组合。

价值 意义
SP_COPY_DELETESOURCE
成功复制后删除源文件。 如果删除失败,则不会通知调用方。
SP_COPY_REPLACEONLY
仅当这样做会覆盖目标路径上的文件时,才复制该文件。 不通知调用方。
SP_COPY_NEWER_OR_SAME
检查正在复制的每个文件,以查看其版本资源是否指示它是否与目标上的现有副本相同或不是更新。

版本检查期间使用的文件版本信息是在 dwFileVersionMS 中指定的,dwFileVersionLSVS_FIXEDFILEINFO 结构的成员,由版本函数填充。 如果其中一个文件没有版本资源,或者它们具有相同的版本信息,则源文件被视为较新。

如果源文件在版本或更新版本中不相等,并且 指定 CopyMsgHandler,则会通知调用方并可以取消副本。 如果未指定 CopyMsgHandler,则不会复制该文件。

SP_COPY_NEWER_ONLY
检查正在复制的每个文件,以查看其版本资源是否指示它不是目标上的现有副本。 如果源文件较新,但在版本上与现有目标不相等,则会复制该文件。
SP_COPY_NOOVERWRITE
检查目标文件是否存在,如果是,请通知可能否决副本的调用方。 如果未指定 CopyMsgHandler,则不会覆盖该文件。
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
检查正在复制的每个文件,以查看其语言是否与目标上已有的任何现有文件的语言不同。 如果是这样,并且 指定 CopyMsgHandler,则会通知调用方并可以取消副本。 如果未指定 CopyMsgHandler,则不会复制该文件。
SP_COPY_SOURCE_ABSOLUTE
SourceFile 是完整的源路径。 请勿在 INF 文件的 SourceDisksNames 节中查找它。
SP_COPY_SOURCEPATH_ABSOLUTE
SourcePathRoot 是源文件的完整路径部分。 忽略 INF 文件的 SourceDisksNames 节中指定的相对源,该源位于该文件所在的源媒体。 如果指定了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
如果用户尝试跳过文件,请警告他们跳过文件可能会影响安装。 (用于系统关键文件。)

LayoutInf

用于获取源信息的 INF 的句柄。

SecurityDescriptor

一个可选的安全描述符字符串,指定要应用于文件的 ACL。

言论

注意

setupapi.h 标头将SP_FILE_COPY_PARAMS定义为一个别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将中性编码别名与不中性编码的代码混合使用可能会导致编译或运行时错误不匹配。 有关详细信息,请参阅函数原型的 约定。

要求

要求 价值
最低支持的客户端 Windows XP [仅限桌面应用]
支持的最低服务器 Windows Server 2003 [仅限桌面应用]
标头 setupapi.h

另请参阅

概述

结构