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


Проверка и инициализация

[Функция, связанная с этой страницей, пакет SDK для Windows Media 11, является устаревшей функцией. Он был заменен средства чтения источника и записи приемника. средства чтения источников и записи приемника оптимизированы для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует использовать новый код средства чтения исходного кода и записи приемников вместо пакета SDK для Windows Media 11, когда это возможно. Корпорация Майкрософт предлагает, что существующий код, использующий устаревшие API, будет перезаписан для использования новых API, если это возможно.]

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

  1. Если у вас уже есть идентификатор ключа для содержимого, перейдите к шагу 5.
  2. Вызовите функцию WMCreateEditor, чтобы создать объект редактора метаданных и получить экземпляр интерфейса IWMMetadataEdit or.
  3. Вызовите IWMMetadataEditor::QueryInterface, чтобы получить экземпляр интерфейса IWMDRMEditor.
  4. Вызовите IWMDRMEditor::GetDRMProperty, чтобы получить свойство DRM_DRMHeader_KeyID.
  5. Инициализировать расширенные API-интерфейсы клиента DRM Windows Media, вызвав функциюWMDRMStartup.
  6. Вызовите функцию WMDRMCreateProtectedProvider, чтобы создать объект поставщика безопасности и получить экземпляр интерфейса IWMDRMProvid er.
  7. Вызовите IWMDRMProvider::CreateObject, чтобы создать объект управления лицензиями и получить экземпляр своего интерфейса IWMDRMLicenseManagement.
  8. Вызовите IWMDRMLicenseManagement::CreateLicenseEnumeration, передавая идентификатор ключа и право, которое управляет действиями, выполняемыми с содержимым после его трансшифровки. Этот вызов получит экземпляр интерфейса IWMDRMLicense, который можно использовать для перечисления с помощью любых соответствующих лицензий.
  9. Вызовите IWMDRMLicense::GetInclusionList, чтобы получить список авторизованных систем защиты содержимого (CPS), как указано издателем лицензии.
  10. Проверьте список включения, чтобы убедиться, что ИДЕНТИФИКАТОР GUID выходного CPS разрешен лицензией.
  11. Если требуемый GUID экспорта отсутствует в списке включения, вызовите IWMDRMLicense::GetNext, чтобы получить следующую соответствующую лицензию (если таковые есть) и повторите шаги 9 и 10. Если лицензия не имеет требуемого GUID в списке включения, экспорт не может быть выполнен.
  12. Вызовите IWMDRMLicense::CreateSecureDecryptor для создания объекта расшифровки. Передайте сертификат приложения экспорта. Этот вызов предоставит указатель на экземпляр интерфейса IWMDRMDecrypt объекта расшифров ки и двоичного объекта, содержащего начальное значение. Только константа Windows Media DRM_PROTECTION_TYPE_RC4 поддерживается в качестве аргумента для параметра dwFlags в настоящее время.
  13. Используйте схему шифрования RSA OAEP для расшифровки вектора инициализации.
  14. Используйте библиотеку синтаксического анализа ASF, предоставляемую корпорацией Майкрософт при вводе в соглашение экспорта DRM Windows Media, чтобы найти смещение в байтах для каждой полезных данных.

экспорт сжатого содержимого