| Предыдущий | Следующий |
| NS_S_WMR_PINTYPEPARTIALMATCH | NS_S_WMG_ADVISE_DROP_FRAME |
NS_S_WMR_PINTYPEFULLMATCH
Media type Windows Media полностью соответствует типу pin
NS_S_WMR_PINTYPEFULLMATCH — это HRESULT 856161 (0x000D1061) Windows Media. В AllStat он описан как «указанный тип полностью соответствует типу этого pin». Бит severity указывает на неошибочный результат, однако значение передаёт конкретное состояние, которое нельзя сводить к обычному S_OK.
В устаревшем конвейере Windows Media или состоянии Player этот статус означает полное соответствие указанного media type типу pin. Общей ветви успешного результата недостаточно для этого статуса потому что возможность продолжения и допустимость выходных данных зависят от конкретного состояния.
Где встречается этот статус
- Этот статус может возвращаться в callbacks источника, reader, writer или renderer Windows Media; фиксируйте точный метод и состояние объекта, а не интерпретируйте константу вне контракта этого вызова.
- Этот статус может возвращаться при автоматизации через Windows Media Player SDK; фиксируйте точный метод и состояние объекта, а не интерпретируйте константу вне контракта этого вызова.
- Этот статус может возвращаться в состояниях media graph, playlist, image, rights или buffering; фиксируйте точный метод и состояние объекта, а не интерпретируйте константу вне контракта этого вызова.
Поскольку этот статус является информационным статусом, языковая оболочка может показать его как успех и скрыть символическое различие. Сохраняйте исходный HRESULT, пока не отработана ветвь, специфичная для этого кода.
Что должно быть истинно перед принятием результата
Для этого статуса убедитесь в совместимости полного media type и возможности соединить нужные pin без скрытого преобразования формата. Именно здесь NS_S_WMR_PINTYPEFULLMATCH из полезной информации о состоянии может превратиться в неправильно обработанный результат.
Решение о повторной попытке после этого статуса требует данных о уже завершённой и ещё ожидающей работе.
Данные и телеметрия
- Для этого статуса сохраните все поля AM_MEDIA_TYPE.
- Для этого статуса сохраните идентификаторы исходного и целевого pin.
- Для этого статуса сохраните требования allocator.
- Для этого статуса сохраните HRESULT соединения.
- Для этого статуса сохраните состояние графа после соединения.
Также зафиксируйте ns_s_wmr_pintypefullmatch_operation, ns_s_wmr_pintypefullmatch_state_before, ns_s_wmr_pintypefullmatch_state_after, время UTC, идентификаторы процесса и потока, версию компонента и идентификатор корреляции. Собирая данные для этого статуса соблюдайте принцип минимального раскрытия: сохраняйте структуру, размеры, идентификаторы и версии, а не секретные данные.
Последовательность диагностики
- Зафиксируйте исходное значение
0x000D1061до того, как оболочки, знаковое десятичное форматирование, исключения или общая обработка успеха заменят исходный статус. - Определите операцию, вернувшую этот статус, включая интерфейс или callback, сборку компонента, поток, процесс и фазу машины состояний.
- Для этого статуса подтвердите решающее условие: полный media type совместим, а нужные pin можно соединить без скрытого преобразования формата.
- Проверьте каждый выходной параметр, счётчик, массив статусов, буфер, callback, состояние задачи, временную метку медиа, голос транзакции или security token, остающийся частью контракта этого статуса.
- Сравните состояние непосредственно до и после этого статуса; success severity не гарантирует завершения необязательной работы или высокоуровневого действия, которого ожидал вызывающий код.
- Воспроизведите этот статус на минимальном входе, сохраняющем то же условие, затем измените только зафиксированную причину и повторите операцию.
Правильная обработка и восстановление
Соедините pin с подтверждённым типом, затем проверьте требования allocator и временные параметры. Сохраните согласованный media type для диагностики.
Повторяйте операцию только после документированного изменения входных данных или состояния. Слепой повтор Этот статус может дублировать побочные эффекты или скрыть конечное условие, поэтому для него требуется явная причина.
Отличие от соседних результатов
Этот статус нужно отличать от обычного S_OK и от значений того же семейства API, у которых бит severity указывает на сбой; документированное состояние определяет следующее действие.
Точная отдельная обработка NS_S_WMR_PINTYPEFULLMATCH не позволяет отмене, ожидающей работе и частичному результату попасть в одну ветвь.
Практический сценарий
Выход декодера и вход рендерера предоставляют идентичные аудио media type. Граф соединяет их напрямую и фиксирует свойства allocator.
Регрессионный тест должен воспроизвести этот статус, проверить соответствующие выходные данные и состояние, затем изменить только решающее условие и убедиться в ожидаемом соседнем результате или обычном завершении.
Рекомендации разработчикам и администраторам
Код должен обработать этот статус отдельно до общей ветви SUCCEEDED(hr) , если отличаются выходные данные, продолжение, отмена или восстановление. В телеметрии следует сохранять NS_S_WMR_PINTYPEFULLMATCH, 0x000D1061, метод-источник результата и идентификатор корреляции.
Для этого статуса явно определите владельца повтора, отмены, очистки и сообщения пользователю. При обработке этого статуса инженеры поддержки должны сохранить контекст первого сбоя до перезапуска компонента-владельца.
Ссылки
- Microsoft: коды ошибок Windows Media Format SDK — официальный материал Microsoft для интерпретации этого статуса.
- Microsoft: Windows Media Player SDK — официальный материал Microsoft для интерпретации этого статуса.
- Microsoft: событие buffering в Windows Media Player — официальный материал Microsoft для интерпретации этого статуса.
- Microsoft: значения HRESULT — официальный материал Microsoft для интерпретации этого статуса.
Нужно найти другой код? Найти другой код состояния или ошибки.