Метод 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 .
Код возврата | Описание |
---|---|
|
Вызывающий объект не авторизован для использования этого интерфейса. |
|
Вызывающий объект не имеет прав, необходимых для выполнения запрошенной операции. |
|
Недопустимый код проверки подлинности сообщения. |
|
Сбой метода. Завершите взаимодействие с поставщиком безопасного содержимого. |
|
Параметр является недопустимым или является указателем 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 Media диспетчер устройств передает предоставленный приложением обратный вызов хода выполнения поставщику безопасного содержимого в параметре pProgressCallback. Поставщик безопасного содержимого может использовать этот параметр для отправки уведомлений о ходе выполнения любых действий, которые ему необходимо выполнить. Сам шаг определяется eventId, который является первым параметром методов IWMDMProgress3. Конкретная реализация поставщика безопасного содержимого определяет значения EventId для приложений.
Требования
Требование | Значение |
---|---|
Целевая платформа | Windows |
Header | mswmdm.h |
Библиотека | Mssachlp.lib |