Метод 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
Флаг, указывающий, какие части файла контейнера готовы к чтению. Этот параметр включен в код проверки подлинности выходного сообщения. Следующие флаги указывают, что готово.
Flag | Описание |
---|---|
WMDM_SCP_TRANSFER_OBJECTDATA | Данные объекта доступны путем вызова метода ObjectData . |
WMDM_SCP_NO_MORE_CHANGES | Устанавливается, когда поставщик безопасного содержимого определяет, что он не требует дальнейшей обработки и (или) изменения передаваемого файла. Диспетчер устройств Windows Media могут напрямую передать оставшуюся часть файла на устройство. |
[in, out] abMac
Массив из восьми байтов, содержащий код проверки подлинности сообщения для данных параметров этого метода. (WMDM_MAC_LENGTH определяется как 8.)
Возвращаемое значение
Если метод завершается успешно, возвращает значение S_OK. В случае сбоя возвращается код ошибки HRESULT .
Код возврата | Описание |
---|---|
|
Вызывающий объект не авторизован для использования этого интерфейса. |
|
Вызывающий объект не имеет прав, необходимых для выполнения запрошенной операции. |
|
Недопустимый код проверки подлинности сообщения. |
|
Сбой метода. Завершите взаимодействие с поставщиком безопасного содержимого. |
|
Недопустимый параметр или является указателем NULL . |
|
Произошла неизвестная ошибка. |
Комментарии
Windows Media диспетчер устройств многократно вызывает этот метод, передавая данные из файла контейнера поставщику защищенного содержимого. Windows Media диспетчер устройств в конечном итоге вызывает этот метод с параметром dwSize, равным нулю, чтобы указать, что у него больше нет данных для передачи. Так как поставщик защищенного содержимого собирает данные и извлекает из них различные объекты, он сообщает в Windows Media диспетчер устройств какие объекты, если таковые имеются, доступны после каждого вызова. Если нет доступных объектов, поставщик безопасного содержимого возвращает S_OK с параметром pfuReadyFlags , равным нулю. Когда поставщик безопасного содержимого определяет, что он не требует дальнейшей обработки и /или изменения передаваемого файла, возвращается флаг WMDM_SCP_NO_MORE_CHANGES. Затем диспетчер устройств Windows Media могут напрямую передать оставшуюся часть файла на устройство.
Данные объектов передаются из поставщика защищенного содержимого путем вызова метода ObjectData . Windows Media диспетчер устройств многократно вызывает ObjectData, пока не возвращает ноль во втором параметре dwBytesWrite.
Метод TransferComplete вызывается диспетчер устройств Windows Media, чтобы сообщить об окончании безопасной передачи данных.
Требования
Требование | Значение |
---|---|
Целевая платформа | Windows |
Header | mswmdm.h |
Библиотека | Mssachlp.lib |