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


Поддержка DRM в DirectShow

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

Чтение и запись защищенных DRM-файлов в DirectShow выполняется в основном так же, как при непосредственном использовании пакета SDK для формата Windows Media. Для начала вам потребуется статическая библиотека wmstubdrm, которая получается отдельно от корпорации Майкрософт. Кроме того, необходимо реализовать интерфейс IKeyProvider , чтобы разрешить приложению доступ к объектам среды выполнения пакета SDK для формата Windows Media при включении DRM.

При применении защиты DRM версии 1 используйте интерфейс IWMHeaderInfo , который получен, как описано в разделе Чтение файлов ASF в DirectShow. При применении защиты DRM версии 7 получите интерфейс IWMDRMWriter , вызвав QueryService в фильтре модуля записи WM ASF , как показано в фрагменте кода далее в этом разделе.

Все остальные конфигурации, относящиеся к DRM, точно такие же, как описано в разделе Включение поддержки DRM. Используйте QueryService , чтобы получить интерфейс IWMDRMReader из фильтра средства чтения WM ASF .

DirectX 9.0 содержит пример PlayWndASF— приложения проигрывателя DirectShow с поддержкой DRM, демонстрирующего получение лицензий DRM версии 1 и 7. Этот пример также включает реализацию класса CKeyProvider , который поддерживает интерфейс IKeyProvider .