Site icon EfmSoft

Что означает код HRESULT 0xC00D7183 (MF_E_RESOLUTION_REQUIRES_PMP_CREATION_CALLBACK)?

 
Предыдущий Следующий
MF_E_ITA_UNRECOGNIZED_DIGITAL_VIDEO_OUTPUT MF_E_INVALID_AKE_CHANNEL_PARAMETERS

MF_E_RESOLUTION_REQUIRES_PMP_CREATION_CALLBACK

Что означает MF_E_RESOLUTION_REQUIRES_PMP_CREATION_CALLBACK

MF_E_RESOLUTION_REQUIRES_PMP_CREATION_CALLBACK (0xC00D7183) — для разрешения защищённого источника Media Foundation требуется свойство MFPKEY_PMP_Creation_Callback в хранилище параметров механизма Source Resolver.

Некоторые защищённые источники должны получить доступ к объектам внутри Protected Media Path уже во время разрешения источника, до создания обычной медиасессии приложением. Microsoft специально предусмотрела для этого обратный вызов: механизм Source Resolver вызывает его, а приложение создаёт защищённую медиасессию PMP и возвращает доступ к IMFPMPHost.

Что проверить и как подтвердить исправление

Проверьте хранилище свойств, передаваемое в IMFSourceResolver::BeginCreateObjectFromURL. В нём должно присутствовать MFPKEY_PMP_Creation_Callback со значением типа VT_UNKNOWN, содержащим реализацию IMFAsyncCallback. Особое внимание уделите коду, который копирует или заново собирает это хранилище: при таком копировании защитное свойство легко потерять.

В IMFAsyncCallback::Invoke Microsoft предписывает создать защищённую медиасессию PMP через MFCreatePMPMediaSession, получить у неё IMFPMPHost и передать этот объект обратно в асинхронную цепочку разрешения. Подставлять произвольный обратный вызов или заменять PMP обычной медиасессией нельзя. Исправление подтверждается тем, что тот же защищённый URL успешно разрешается без 0xC00D7183.

Документация для результата 0xC00D7183: MFPKEY_PMP_Creation_Callback · IMFPMPHost · PMP Media Session.


Нужно найти другой код? Найти другой код состояния или ошибки.

Exit mobile version