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


Метод ISCPSecureExchange2::TransferContainerData2 (mswmdm.h)

Метод TransferContainerData2 передает данные файлов контейнера поставщику защищенного содержимого. Поставщик безопасного содержимого внутренне разбивает контейнер и сообщает, какие части содержимого доступны по мере их извлечения из контейнера. Этот метод расширяет isCPSecureExchange::TransferContainerData , принимая обратный вызов хода выполнения, при котором поставщик безопасного содержимого может отправлять уведомления о ходе выполнения для любого из шагов, которые ему необходимо выполнить.

Синтаксис

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

Параметры

[in] pData

Указатель на буфер, содержащий текущие данные, передаваемые из файла контейнера. Этот параметр должен быть включен в код проверки подлинности входного сообщения и должен быть зашифрован.

[in] dwSize

DWORD , содержащий количество байтов в буфере. Этот параметр должен быть включен в код проверки подлинности входного сообщения.

[in] pProgressCallback

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

[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 Media диспетчер устройств передает предоставленный приложением обратный вызов хода выполнения поставщику безопасного содержимого в параметре pProgressCallback. Поставщик безопасного содержимого может использовать этот параметр для отправки уведомлений о ходе выполнения любых действий, которые ему необходимо выполнить. Сам шаг определяется eventId, который является первым параметром методов IWMDMProgress3. Конкретная реализация поставщика безопасного содержимого определяет значения EventId для приложений.

Требования

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

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

Интерфейс ISCPSecureExchange

Интерфейс ISCPSecureExchange2

ISCPSecureExchange::ObjectData

Интерфейс IWMDMProgress3