IBackgroundCopyCallback::JobTransferred 方法 (bits.h)
当作业中的所有文件都已成功传输时,BITS 会调用 JobTransferred 方法的实现。 对于BG_JOB_TYPE_UPLOAD_REPLY作业,BITS 在上传文件传输到服务器并将回复传输到客户端后调用 JobTransferred 方法。
语法
HRESULT JobTransferred(
[in] IBackgroundCopyJob *pJob
);
参数
[in] pJob
包含与作业相关的信息,例如作业完成的时间、传输的字节数和传输的文件数。 不释放 pJob;当 方法返回时,BITS 释放接口。
返回值
此方法应返回 S_OK;否则,BITS 将继续调用此方法,直到返回 S_OK 。 出于性能原因,应将返回除 S_OK 以外的值的次数限制为多次。 作为返回错误代码的替代方法,请考虑始终返回 S_OK 并在内部处理错误。 调用此方法的间隔是任意的。
请注意,如果此方法失败,并且你调用 了 IBackgroundCopyJob2::SetNotifyCmdLine 方法,则执行命令行,并且不会再次调用此方法。
注解
通常,实现应调用 IBackgroundCopyJob::Complete 方法来确认 BITS 已成功传输文件。 在调用 Complete 方法之前,下载文件和回复文件在客户端上不可用。
如果未在 90 天内调用 Complete 方法或 IBackgroundCopyJob::Cancel 方法 (默认 JobInactivityTimeout 组策略) ,则 BITS 将取消作业并删除下载的文件和回复文件;作业取消不会影响已成功上传的文件。
如果要在回调中检索回复数据,请查询 iBackgroundCopyJob2 接口的 pJob 并调用其 GetReplyData 方法。 若要检索包含回复数据的文件的名称,请调用 GetReplyFileName 方法。
BITS 不保证传输的文件对第三方入侵的完整性。 客户端可以实施完整性检查,以在调用 Complete 方法之前验证传输的文件。 若要在传输文件时获取通知,请实现 IBackgroundCopyCallback2::FileTransferred 方法。 在回调中,调用 IBackgroundCopyFile3::GetTemporaryName 方法以获取包含已下载内容的临时文件的名称。 验证内容,然后调用 IBackgroundCopyFile3::SetValidationState 方法以指示内容是否有效。 如果内容无效,并且 BITS 从源服务器下载了文件,则作业将进入错误状态。 如果作业是从对等机下载的,则 BITS 将从源服务器下载文件。
示例
请参阅 IBackgroundCopyCallback 接口的示例代码。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows XP |
最低受支持的服务器 | Windows Server 2003 |
目标平台 | Windows |
标头 | bits.h |