IBackgroundCopyCallback3::FileRangesTransferred 方法 (bits10_1.h)

当下载一个或多个文件范围时,BITS 会调用 FileRangesTransferred 方法的实现。 使用 IBackgroundCopyFile6::RequestFileRanges 方法将文件范围添加到作业。

语法

HRESULT FileRangesTransferred(
  IBackgroundCopyJob     *job,
  IBackgroundCopyFile    *file,
  DWORD                  rangeCount,
  const BG_FILE_RANGE [] ranges
);

参数

job

一个 IBackgroundCopyJob 对象,该对象包含用于访问作业的属性、进度和状态信息的方法。 不释放 pJob;当 方法返回时,BITS 释放 接口。

file

一个 IBackgroundCopyFile 对象,该对象包含有关其范围已更改的文件的信息。 不要释放 pFile;当 方法返回时,BITS 释放 接口。

rangeCount

ranges 数组中的条目计数。

ranges

自上次调用 FileRangesTransferred 或上次调用 IBackgroundCopyFile6::RequestFileRanges 方法以来传输的文件范围的数组。 不释放 范围; 当 FileRangesTransferred 方法返回时,BITS 释放范围内存。

返回值

此方法在成功时返回 S_OK ;否则,将返回错误代码。

注解

此方法中返回的范围可能与所请求的范围不匹配。 这是因为 BITS 不会下载同一字节范围两次,并且因为 BITS 可以在下载某个范围的一部分时进行报告。

在最大资源负载条件下,实现可能不会收到所有修改事件。

BITS 生成大量事件;请考虑创建计时器并轮询状态和进度信息,或限制使用此回调。 如果使用此回调,请保持实现简短。 应将 BITS_JOB_PROPERTY_MINIMUM_NOTIFICATION_INTERVAL 属性设置为仍然满足需求的最大值;这将减少不需要的回调数。

注意 BITS 支持每个用户最多同时发出四个通知。 如果一个或多个应用程序阻止用户返回所有四个通知,则在一个或多个阻止通知返回之前,以同一用户身份运行的应用程序将不会收到通知。
 

示例

有关如何使用此函数的示例,请参阅 IBackgroundCopyCallback3 接口的示例代码。

要求

要求
最低受支持的客户端 Windows 10版本 1703 [仅限桌面应用]
最低受支持的服务器 Windows Server 2016 [仅限桌面应用]
目标平台 Windows
标头 bits10_1.h (包括 Bits.h)
Library Bits.lib

另请参阅

IBackgroundCopyCallback3