| Предыдущий | Следующий |
| NS_E_WMP_UNKNOWN_ERROR | NS_E_WMP_CD_ANOTHER_USER |
NS_E_WMP_INVALID_KEY
Диагностика HRESULT в тракте воспроизведения Windows Media Player
NS_E_WMP_INVALID_KEY (0xC00D11CE) возвращается, когда кодек или компонент защищённого мультимедиа предоставил ключ либо связанный с ключом объект, который не прошёл проверку.
Рассматривайте разрешение пути или URL, выбор прокси и сети, обнаружение анализатора и кодека, построение графа, рендеринг и необязательный DRM как отдельные уровни. Практической контрольной точкой является ситуация, когда кодек или компонент защищённого мультимедиа предоставил ключ либо связанный с ключом объект, который не прошёл проверку. Хотя этот HRESULT может отображаться как «не удаётся воспроизвести» или «не удаётся сохранить», она относится к конкретному состоянию объекта, которое следует диагностировать напрямую.
Граница воспроизведения
AllStat уже предоставляет стандартное пользовательское описание этого HRESULT; этот дополнительный блок выделяет более узкую техническую границу. Успешный поиск файла, сетевое соединение, создание анализатора или построение графа на предыдущем этапе не доказывают, что последующая операция, возвращающая этот HRESULT, допустима.
Контрольная точка для данного случая: владеющий компонент, идентификатор и длину ключа, заголовок содержимого, подпись кодека, состояние отзыва и вложенный результат DRM/кодека. Для контролируемого сравнения проверьте незашифрованный заведомо исправный поток через тот же кодек, затем сравните защищённый путь или путь с ключом.
Ближайшее различие: NS_E_WMP_TAMPERED_CONTENT указывает на нарушение целостности содержимого; недопустимый ключ может относиться к настройке компонента или расшифрования.
Зафиксируйте первый отказавший уровень
| Зафиксируйте | Почему это важно |
|---|---|
| Объект или ресурс | владеющий компонент, идентификатор и длину ключа, заголовок содержимого, подпись кодека, состояние отзыва и вложенный результат DRM/кодека |
| Снимок состояния | Зафиксируйте openState/playState проигрывателя либо фазу операции, идентичность объекта и точное время возврата этого HRESULT. |
| Первый результат нижнего уровня | Сохраните самый ранний результат Win32, Winsock, COM, анализатора, кодека, DRM или устройства, появившийся до итогового HRESULT. |
| Данные для сравнения | Для контрольного сравнения используйте один заведомо исправный пример, проходящий через тот же API, протокол и цепочку компонентов, изменив только отклонённое предварительное условие. |
Контролируемое сравнение воспроизведения
- Зафиксируйте идентификатор ресурса, владеющий компонент, идентификатор и длину ключа, заголовок содержимого, подпись кодека, состояние отзыва и вложенный результат DRM/кодека.
- Убедитесь, что вызывающая сторона использует текущее поколение объекта Playlist, Media, Network, графа, устройства или DRM.
- Проведите узкую проверку: пропустите незашифрованный заведомо исправный поток через тот же кодек, затем сравните защищённый путь или путь с ключом.
- Не объединяйте этот эксперимент с установкой пакета кодеков, сбросом проигрывателя или широкой очисткой реестра.
- После этого считайте новый конкретный HRESULT доказательством прохождения этой границы.
Как интерпретировать повторную проверку
| Результат повторной проверки | Толкование |
|---|---|
| Тот же HRESULT на том же объекте | Определяющее состояние или значение не изменилось либо вызывающая сторона повторно использует объект, созданный до соответствующего изменения. |
| Новый объект работает успешно | На результат повлияли время жизни объекта, кэшированная конфигурация либо устаревшее состояние списка воспроизведения или графа. |
| Появляется более поздний HRESULT | Исходное условие — ключ или связанный объект не прошёл проверку — устранено; новый код диагностируйте на уровне, который его сформировал. |
| Сбой возникает только для одного элемента или конечной точки | Эти данные указывают прежде всего на состояние конкретного ресурса, прав, маршрутизации или устройства, а не на общий сбой проигрывателя. |
Действия, скрывающие причину
- публиковать материал ключа в диагностических журналах.
- Не теряйте первый конкретный HRESULT из-за многократных вызовов Play, Open и Save или повторов: последующие события могут заменить исходное состояние.
- При диагностике не публикуйте учётные данные, приватные URL, лицензионные материалы или полные заголовки защищённого содержимого; сохраняйте только обезличенные идентификаторы, длины, хэши и необходимые поля протокола.
Технические ссылки
- Поддерживаемые протоколы и типы файлов
- Использование Windows Media в DirectShow
- Работа с кодеками
- Фильтры DirectShow
- Реестр HRESULT Microsoft
Эта граница подтверждается успешным прохождением того же пути Player с тем же ресурсом, а не открытием его другим приложением.
Нужно найти другой код? Найти другой код состояния или ошибки.