| Предыдущий | Следующий |
| NS_S_WMPCORE_PLAYLIST_CREATION_PENDING | NS_S_WMPCORE_PLAYLIST_REPEAT_SECONDARY_SEGMENTS_IGNORED |
NS_S_WMPCORE_MEDIA_VALIDATION_PENDING
Проверка медиаобъекта ещё выполняется
NS_S_WMPCORE_MEDIA_VALIDATION_PENDING — это HRESULT 856323 (0x000D1103) Windows Media. В AllStat он описан как «проверка медиаобъекта ещё выполняется». Бит severity указывает на неошибочный результат, однако значение передаёт конкретное состояние, которое нельзя сводить к обычному S_OK.
В устаревшем конвейере Windows Media или состоянии Player этот статус означает, что проверка медиаобъекта ещё не завершена. Высокоуровневый запрос можно считать завершённым после этого статуса только после проверки документированного постусловия.
Последовательность диагностики
- Зафиксируйте исходное значение
0x000D1103до того, как оболочки, знаковое десятичное форматирование, исключения или общая обработка успеха заменят исходный статус. - Определите операцию, вернувшую этот статус, включая интерфейс или callback, сборку компонента, поток, процесс и фазу машины состояний.
- Для этого статуса подтвердите решающее условие: медиаэлемент нельзя считать полностью пригодным к использованию до окончания проверки.
- Проверьте каждый выходной параметр, счётчик, массив статусов, буфер, callback, состояние задачи, временную метку медиа, голос транзакции или security token, остающийся частью контракта этого статуса.
- Сравните состояние непосредственно до и после этого статуса; success severity не гарантирует завершения необязательной работы или высокоуровневого действия, которого ожидал вызывающий код.
- Воспроизведите этот статус на минимальном входе, сохраняющем то же условие, затем измените только зафиксированную причину и повторите операцию.
Где встречается этот статус
- Этот статус может возвращаться в callbacks источника, reader, writer или renderer Windows Media; фиксируйте точный метод и состояние объекта, а не интерпретируйте константу вне контракта этого вызова.
- Этот статус может возвращаться при автоматизации через Windows Media Player SDK; фиксируйте точный метод и состояние объекта, а не интерпретируйте константу вне контракта этого вызова.
- Этот статус может возвращаться в состояниях media graph, playlist, image, rights или buffering; фиксируйте точный метод и состояние объекта, а не интерпретируйте константу вне контракта этого вызова.
Поскольку этот статус является информационным статусом, языковая оболочка может показать его как успех и скрыть символическое различие. Сохраняйте исходный HRESULT, пока не отработана ветвь, специфичная для этого кода.
Что должно быть истинно перед принятием результата
Для этого статуса убедитесь, что медиаэлемент не считается полностью пригодным к использованию до завершения проверки. Это не позволяет NS_S_WMPCORE_MEDIA_VALIDATION_PENDING быть ошибочно повышенным до более широкого успеха, чем обещает API-источник.
До возврата NS_S_WMPCORE_MEDIA_VALIDATION_PENDINGкомпонент мог изменить долговременное состояние или данные в памяти; сначала проверьте их.
Данные и телеметрия
- Для этого статуса сохраните URL медиаобъекта и идентификатор элемента.
- Для этого статуса сохраните этап проверки.
- Для этого статуса сохраните сведения о незавершённых проверках формата и прав.
- Для этого статуса сохраните событие завершения.
- Для этого статуса сохраните состояние, показываемое интерфейсу.
Также зафиксируйте ns_s_wmpcore_media_validation_pending_operation, ns_s_wmpcore_media_validation_pending_state_before, ns_s_wmpcore_media_validation_pending_state_after, время UTC, идентификаторы процесса и потока, версию компонента и идентификатор корреляции. Для этого статуса защищайте пользовательские данные в журналах и сохраняйте только идентификаторы, необходимые для воспроизведения состояния компонента.
Отличие от соседних результатов
Этот статус нужно отличать от обычного S_OK и от значений того же семейства API, у которых бит severity указывает на сбой; документированное состояние определяет следующее действие.
Для этого статуса сравнение с соседним состоянием определяет, пригодны ли выходные данные и ожидается ли дополнительная работа.
Правильная обработка и восстановление
Удерживайте медиаобъект, дождитесь результата проверки и блокируйте действия, для которых требуется подтверждённый формат, расположение или права.
Повторяйте операцию только после документированного изменения входных данных или состояния. Для этого статуса политика повтора должна следовать автомату состояний компонента-владельца, а не общему циклу повторов для временных ошибок.
Практический сценарий
Новый сетевой элемент предварительно добавляется в библиотеку, пока идёт проверка. Полное воспроизведение включается только после её успешного завершения.
Регрессионный тест должен воспроизвести этот статус, проверить соответствующие выходные данные и состояние, затем изменить только решающее условие и убедиться в ожидаемом соседнем результате или обычном завершении.
Рекомендации разработчикам и администраторам
В операционных панелях классифицируйте этот статус по фактическому состоянию — ожидание, завершение, частичный результат, отмена, адаптация или успешное предупреждение, — а не считайте его обычной ошибкой или неразличимым успехом.
Для этого статуса определите владельца повтора, отмены, очистки и сообщения пользователю. При эксплуатационном восстановлении NS_S_WMPCORE_MEDIA_VALIDATION_PENDING должно выполняться средствами поставщика, службы, конвейера или пакета безопасности, который выдал результат.
Ссылки
- Microsoft: коды ошибок Windows Media Format SDK — официальный материал Microsoft для интерпретации этого статуса.
- Microsoft: Windows Media Player SDK — официальный материал Microsoft для интерпретации этого статуса.
- Microsoft: событие buffering в Windows Media Player — официальный материал Microsoft для интерпретации этого статуса.
- Microsoft: значения HRESULT — официальный материал Microsoft для интерпретации этого статуса.
Нужно найти другой код? Найти другой код состояния или ошибки.
