| Предыдущий | Следующий |
| 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.
Нужно найти другой код? Найти другой код состояния или ошибки.
