Поделиться через


Метод 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 .

Код возврата Описание
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.

Метод TransferComplete вызывается диспетчер устройств Windows Media, чтобы сообщить об окончании безопасной передачи данных.

Требования

Требование Значение
Целевая платформа Windows
Header mswmdm.h
Библиотека Mssachlp.lib

См. также раздел

Интерфейс ISCPSecureExchange