ISCPSecureExchange::TransferContainerData 方法 (mswmdm.h)

TransferContainerData 方法将容器文件数据传输到安全内容提供程序。 安全内容提供程序在内部分解容器,并在从容器中提取内容时报告哪些部分可用。

语法

HRESULT TransferContainerData(
  [in]      BYTE     *pData,
  [in]      DWORD    dwSize,
  [out]     UINT     *pfuReadyFlags,
  [in, out] BYTE [8] abMac
);

参数

[in] pData

指向一个缓冲区的指针,该缓冲区保存从容器文件传输的当前数据。 此参数必须包含在输入消息身份验证代码中,并且必须加密。

[in] dwSize

包含缓冲区中字节数的 DWORD。 此参数必须包含在输入消息身份验证代码中。

[out] pfuReadyFlags

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

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

[in, out] abMac

包含此方法的参数数据的消息身份验证代码的 8 个字节的数组。 (WMDM_MAC_LENGTH 定义为 8.)

返回值

如果该方法成功,则它会返回 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 设备管理器可以直接将文件的其余部分传输到设备。

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

Windows Media 设备管理器调用 TransferComplete 方法,以指示安全数据传输结束。

要求

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

另请参阅

ISCPSecureExchange 接口