ICcmAlternateDownloadProvider :DownloadContent 方法

Configuration Manager 中的 ICcmAlternateDownloadProvider::D ownloadContent 方法指示提供程序下载内容。

语法

HRESULT DownloadContent(  
            LPCWSTR szContentId,   
            LPCWSTR szContentVersion,   
            LPCWSTR szRemotePath,   
            LPCWSTR szLocalPath,   
            LPCWSTR szNotifyEndpoint,   
            LPCWSTR szNotifyData,   
            CCM_DTS_PRIORITY Priority,   
            DWORD dwTimeoutSeconds,   
            DWORD dwChunkSize,   
            DWORD dwFlags,   
            LPCWSTR szLocationOptions,   
            LPCWSTR szFileManifest,   
            LPCWSTR szOwnerSID,   
            BOOL bDeleteJobOnError,   
            LPCWSTR szProviderData,   
            LPCWSTR szPackageData,   
            GUID *pJobID  
        );  

参数

szContentId
数据类型LPCWSTR

限定符:[in]

要下载的内容/包 ID。

szContentVersion
数据类型LPCWSTR

限定符:[in]

要下载的内容/包版本。

szRemotePath
数据类型LPCWSTR

限定符:[in]

有关下载内容的提示。 提供程序可以随意忽略此情况,并使用自己的机制进行下载。

szLocalPath
数据类型LPCWSTR

限定符:[in]

应将内容下载到的目录。 此调用中应已存在此目录,提供程序不应出于任何原因更改目录本身上的任何 ACL。 当 szManifest 为 null时,应忽略此参数。

szNotifyEndpoint
数据类型LPCWSTR

限定符:[in]

用于通知内容传输管理器的终结点。 这应逐字传递到对 SendNotify*ToCTM 的调用中。

szNotifyData
数据类型LPCWSTR

限定符:[in]

内容传输管理器指定的通知数据 应逐字传递到对 SendNotify*ToCTM 的调用中

Priority
数据类型CCM_DTS_PRIORITY

限定符:[in]

作业的优先级。 请参阅有关CCM_DTS_PRIORITY的说明。

dwTimeoutSeconds
数据类型DWORD

限定符:[in]

作业的超时。 如果达到超时,作业应通过 SendNotifyErrorToCTM 报告错误。

dwChunkSize
数据类型DWORD

限定符:[in]

用于通知的区块大小。 如果已请求进度通知,则应每隔一个 dwChunkSize 字节通知内容传输管理器。

dwFlags
数据类型DWORD

限定符:[in]

作业的标志。 这对应于CCM_DTS_FLAG值的 OR。

szLocationOptions
数据类型LPCWSTR

限定符:[in]

保留。 备用提供程序应忽略这一点。

szFileManifest
数据类型LPCWSTR

限定符:[in, unique]

null表示要从目标下载的文件字节范围的 或 XML 数据。 请参阅下面的 “备注 ”。

szOwnerSID
数据类型LPCWSTR

限定符:[in]

应在其中执行下载的用户上下文。

bDeleteJobOnError
数据类型BOOL

限定符:[in]

指示作业是否应因暂时性错误条件而立即失败。 如果为 false,则暂时性错误应仅导致提供程序在内部重试,除非作业超时或内容传输管理器另有指示。

szProviderData
数据类型LPCWSTR

限定符:[in]

CCM_DownloadProvider策略中指定的提供程序特定数据。 如果未指定数据,则为空字符串。

szPackageData
数据类型LPCWSTR

限定符:[in]

包特定的数据在服务器端指定,包装在 Data> XML 元素中<。 如果未指定数据,则此字符串将为空字符串。

*pJobID
数据类型GUID

限定符:[out]

应在后续调用中用于引用的作业 ID。

返回值

代码 HRESULT 。 可能的值包括但不限于以下内容:

S_OK
成功意味着已成功触发发现。 所有其他返回值都表示失败。

备注

从版本 1702 开始,Configuration Manager与支持增量下载的 Microsoft 365 即点即用集成。 应更新备用内容提供程序,以实现字节范围下载功能。 字节范围信息是在 szFileManifest 参数中指定的 XML 清单中指定的。

清单 XML 使用以下架构:

<?xml version="1.0" encoding="utf-8"?> 
<xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="DTSManifest">
    <xs:complexType>
      <xs:sequence>
        <xs:element maxOccurs="200" minOccurs="1" name="File">
          <xs:complexType>
            <xs:sequence>
              <xs:element maxOccurs="500" minOccurs="0" name="Chunk">
                <xs:complexType>
                  <xs:attribute name="Length" type="xs:unsignedInt" use="required" />
                  <xs:attribute name="Offset" type="xs:unsignedInt" use="required" />
                </xs:complexType>
              </xs:element>
            </xs:sequence>
            <xs:attribute name="Destination" type="xs:string" use="required" />
            <xs:attribute name="Source" type="xs:string" use="required" />
          </xs:complexType>
        </xs:element>
      </xs:sequence>
      <xs:attribute name="Version" type="xs:unsignedByte" use="required" />
    </xs:complexType>
  </xs:element>
</xs:schema> 

以下示例演示下载三个文件的清单:

<?xml version="1.0"?> 
<DTSManifest Version="1">
  <File Destination="C:\Prod\stream.dat" Source="Office/Data/6366.2036/stream.dat">
     <Chunk Length="43491" Offset="59247735"/>
     <Chunk Length="267118" Offset="69247735"/>
  </File>
  <File Destination="C:\Prod\s320.cab" Source="Office/Data/6366.2036/320.cab">
     <Chunk Length="512" Offset="50"/> 
  </File>
  <File Destination="C:\Prod\s640.cab" Source="Office/Data/16.0.6366.2036/s640.cab"/>
</DTSManifest> 

处理清单时,请记住:

  • 将有一个或多个 <file> 元素。
  • 如果元素 <file> 包含 <chunk> 元素,则每个元素指定 <chunk> 增量下载的长度和字节偏移量。
  • 如果未 <chunk> 指定任何元素,则应下载整个文件。

如果备用内容提供程序无法支持增量下载,Configuration Manager自动使用分发点下载Microsoft 365 内容。 但是,对于其他下载方案,备用内容提供程序的工作方式不会造成其他影响。

注意

如果提供程序出于任何原因无法处理请求,则应返回错误。

要求

运行时要求

有关详细信息,请参阅 Configuration Manager客户端运行时要求

开发要求

有关详细信息,请参阅 Configuration Manager客户端开发要求