ISCPSecureExchange3::TransferContainerDataOnClearChannel 方法 (mswmdm.h)

TransferContainerDataOnClearChannel 方法通过清除通道将容器文件数据传输到内容提供程序。 内容提供程序在内部分解容器,并在从容器中提取内容时报告哪些部分可用。

此方法与 ISCPSecureExchange::TransferContainerData 相同,只不过传递给此方法的参数未加密。 因此,此方法更有效。

语法

HRESULT TransferContainerDataOnClearChannel(
  IMDSPDevice    *pDevice,
  BYTE           *pData,
  DWORD          dwSize,
  IWMDMProgress3 *pProgressCallback,
  UINT           *pfuReadyFlags
);

parameters

pDevice

指向设备对象的指针。

pData

指向一个缓冲区的指针,该缓冲区保存从容器文件传输的当前数据。

dwSize

包含缓冲区中的字节数。

pProgressCallback

进度回调,内容提供程序可以报告可能需要执行的任何步骤的进度。此步骤将由 IWMDMProgress3 方法的 EventId 参数标识。

pfuReadyFlags

指示容器文件哪些部分已准备好读取的标志。 此参数包含在输出消息身份验证代码中。 以下标志指示已准备就绪的内容。

含义
WMDM_SCP_TRANSFER_OBJECTDATA
对象的数据可通过调用 GetObjectDataOnClearChannel 方法获得。
WMDM_SCP_NO_MORE_CHANGES
内容提供程序已确定不需要进一步处理和/或修改正在传输的文件。 Windows Media 设备管理器可以直接将文件的其余部分传输到设备。

返回值

如果该方法成功,则它会返回 S_OK。 如果方法失败,它将返回 HRESULT 错误代码。

返回代码 说明
WMDM_E_NOT_CERTIFIED
调用方无权使用此接口。
WMDM_E_NORIGHTS
调用方没有执行请求的操作所需的权限。
WMDM_E_MAC_CHECK_FAILED
消息身份验证代码无效。
S_FALSE
方法失败。 终止与内容提供程序的交互。
E_INVALIDARG
参数无效或为 NULL 指针。
E_FAIL
发生了未指定的错误。

注解

Windows Media 设备管理器重复调用此方法,将数据从容器文件传输到内容提供程序。 Windows Media 设备管理器最终调用此方法,并将 dwSize 设置为零,以指示它没有更多要传输的数据。 当内容提供程序收集数据并从中提取各种对象时,它会向 Windows Media 报告设备管理器每次调用后可用的对象(如果有)。 如果没有可用的对象,内容提供程序将返回S_OK,并将 pfuReadyFlags 参数设置为零。 当内容提供程序确定不需要进一步处理和/或修改正在传输的文件时,将返回WMDM_SCP_NO_MORE_CHANGES标志。 然后,Windows Media 设备管理器可以直接将文件的其余部分传输到设备。

对象数据通过调用 GetObjectDataOnClearChannel 方法从内容提供程序传输。 Windows Media 设备管理器重复调用 GetObjectDataOnClearChannel,直到它在第三个参数 pdwsize 中返回零。

Windows Media 设备管理器调用 ISCPSecureExchange::TransferComplete (或 TransferCompleteForDevice(如果会话处于活动状态) 方法)以指示数据传输结束。

Windows Media 设备管理器将应用程序提供的进度回调传递给 pProgressCallback 参数中的内容提供程序。 内容提供程序可以使用此参数为需要执行的任何步骤提供进度通知。步骤本身由 EventId 标识, EventIdIWMDMProgress3 方法的第一个参数。 特定内容提供程序实现将定义 EventId 值以供应用程序使用。

此方法与 ISCPSecureExchange::TransferContainerData 相同,只不过传递给此方法的参数未加密。 因此,此方法更有效。

要求

   
目标平台 Windows
标头 mswmdm.h
Library Mssachlp.lib

请参阅

ISCPSecureExchange3 接口

ISCPSecureExchange::TransferContainerData