PCOPYFILE2_PROGRESS_ROUTINE回调函数 (winbase.h)

与 CopyFile2 函数一起使用的应用程序定义回调函数。 当复制或移动操作的一部分完成时,将调用它。 PCOPYFILE2_PROGRESS_ROUTINE类型定义指向此回调函数的指针。 CopyFile2ProgressRoutine 是应用程序定义的函数名称的占位符。

语法

PCOPYFILE2_PROGRESS_ROUTINE Pcopyfile2ProgressRoutine;

COPYFILE2_MESSAGE_ACTION Pcopyfile2ProgressRoutine(
  [in]           const COPYFILE2_MESSAGE *pMessage,
  [in, optional] PVOID pvCallbackContext
)
{...}

参数

[in] pMessage

指向 COPYFILE2_MESSAGE 结构的指针。

[in, optional] pvCallbackContext

传递到 CopyFile2COPYFILE2_EXTENDED_PARAMETERS结构的 pvCallbackContext 成员中传递的值的副本。

返回值

COPYFILE2_MESSAGE_ACTION枚举中的值,指示应采取的操作。

返回代码/值 说明
COPYFILE2_PROGRESS_CONTINUE
0
继续复制操作。
COPYFILE2_PROGRESS_CANCEL
1
取消复制操作。 CopyFile2 函数将失败,返回HRESULT_FROM_WIN32(ERROR_REQUEST_ABORTED)并删除所有部分复制的片段。
COPYFILE2_PROGRESS_STOP
2
停止复制操作。 CopyFile2 函数将失败,返回HRESULT_FROM_WIN32(ERROR_REQUEST_ABORTED)并且所有部分复制的片段将保持不变。 仅当传递给 CopyFile2 函数的 COPYFILE2_EXTENDED_PARAMETERS 结构的 dwCopyFlags 成员中设置了COPY_FILE_RESTARTABLE时,才能使用 COPY_FILE_RESUME_FROM_PAUSE 标志重新启动操作。
COPYFILE2_PROGRESS_QUIET
3
继续复制操作,但不为此操作再次调用 CopyFile2ProgressRoutine 回调函数。
COPYFILE2_PROGRESS_PAUSE
4
暂停复制操作。 在大多数情况下, CopyFile2 函数将失败并返回 HRESULT_FROM_WIN32(ERROR_REQUEST_PAUSED) ,任何部分复制的片段 (将保持不变,但稍后用于恢复复制操作的标头除外。) 如果复制操作在处理暂停请求时完成, 则 CopyFile2 调用将成功完成,并且不会写入任何恢复标头。

注解

COPYFILE2_CALLBACK_STREAM_FINISHED消息是暂停副本的最后一条消息。 如果 返回COPYFILE2_PROGRESS_PAUSE 以响应 COPYFILE2_CALLBACK_STREAM_FINISHED 消息,则不会发送进一步的回调。

若要编译使用 PCOPYFILE2_PROGRESS_ROUTINE 函数指针类型的应用程序,请将 _WIN32_WINNT 宏定义为 0x0601 或更高版本。 有关详细信息,请参阅 使用 Windows 标头

在 Windows 8 和 Windows Server 2012 中,此函数由以下技术支持。

技术 支持
服务器消息块 (SMB) 3.0 协议
SMB 3.0 透明故障转移 (TFO)
具有横向扩展文件共享的 SMB 3.0 (SO)
群集共享卷文件系统 (CSV)
弹性文件系统 (ReFS)

要求

要求
最低受支持的客户端 Windows 8 [桌面应用 |UWP 应用]
最低受支持的服务器 Windows Server 2012 [桌面应用 |UWP 应用]
目标平台 Windows
标头 winbase.h (包括 Windows.h)