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
指示容器文件哪些部分已准备好读取的标志。 此参数包含在输出消息身份验证代码中。 以下标志指示已准备就绪的内容。
值 | 含义 |
---|---|
|
对象的数据可通过调用 GetObjectDataOnClearChannel 方法获得。 |
|
内容提供程序已确定不需要进一步处理和/或修改正在传输的文件。 Windows Media 设备管理器可以直接将文件的其余部分传输到设备。 |
返回值
如果该方法成功,则它会返回 S_OK。 如果方法失败,它将返回 HRESULT 错误代码。
返回代码 | 说明 |
---|---|
|
调用方无权使用此接口。 |
|
调用方没有执行请求的操作所需的权限。 |
|
消息身份验证代码无效。 |
|
方法失败。 终止与内容提供程序的交互。 |
|
参数无效或为 NULL 指针。 |
|
发生了未指定的错误。 |
注解
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 标识, EventId 是 IWMDMProgress3 方法的第一个参数。 特定内容提供程序实现将定义 EventId 值以供应用程序使用。
此方法与 ISCPSecureExchange::TransferContainerData 相同,只不过传递给此方法的参数未加密。 因此,此方法更有效。
要求
目标平台 | Windows |
标头 | mswmdm.h |
Library | Mssachlp.lib |