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


Метод ISCPSecureExchange3::TransferContainerDataOnClearChannel (mswmdm.h)

Метод TransferContainerDataOnClearChannel передает данные файла контейнера поставщику содержимого через чистый канал. Поставщик содержимого разбивает контейнер внутри и сообщает, какие части содержимого доступны по мере их извлечения из контейнера.

Этот метод идентичен методу ISCPSecureExchange::TransferContainerData , за исключением того, что передаваемые этому методу параметры не шифруются. Следовательно, этот метод более эффективен.

Синтаксис

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

Параметры

pDevice

Указатель на объект устройства.

pData

Указатель на буфер, содержащий текущие данные, передаваемые из файла контейнера.

dwSize

Содержит количество байтов в буфере.

pProgressCallback

Обратный вызов хода выполнения, при котором поставщик содержимого может сообщать о ходе выполнения любых шагов, которые ему может потребоваться выполнить. Шаг будет определен параметром EventId методов IWMDMProgress3 .

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.

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

Windows Media диспетчер устройств передает предоставленный приложением обратный вызов хода выполнения поставщику содержимого в параметре pProgressCallback. Поставщик содержимого может использовать этот параметр для отправки уведомлений о ходе выполнения любых шагов, которые ему необходимо выполнить. Сам шаг определяется с помощью EventId, который является первым параметром методов IWMDMProgress3. Конкретная реализация поставщика содержимого определяет значения EventId для приложений.

Этот метод идентичен методу ISCPSecureExchange::TransferContainerData , за исключением того, что передаваемые этому методу параметры не шифруются. Следовательно, этот метод более эффективен.

Требования

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

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

Интерфейс ISCPSecureExchange3

ISCPSecureExchange::TransferContainerData