| Предыдущий | Следующий |
| NS_S_NEED_TO_BUY_BURN_RIGHTS | NS_S_WMPCORE_PLAYLISTREMOVEITEMABORT |
NS_S_WMPCORE_PLAYLISTCLEARABORT
Очистка списка воспроизведения отменена пользователем
NS_S_WMPCORE_PLAYLISTCLEARABORT — это HRESULT 856318 (0x000D10FE) Windows Media. В AllStat он описан как «не удалось очистить список воспроизведения, поскольку пользователь отменил операцию». Бит severity указывает на неошибочный результат, однако значение передаёт конкретное состояние, которое нельзя сводить к обычному S_OK.
В устаревшем конвейере Windows Media или состоянии Player этот статус означает, что очистка списка воспроизведения была прервана пользователем. Обрабатывайте этот статус как отдельную ветвь, постусловие которой нужно подтвердить до начала последующих операций.
Последовательность диагностики
- Зафиксируйте исходное значение
0x000D10FEдо того, как оболочки, знаковое десятичное форматирование, исключения или общая обработка успеха заменят исходный статус. - Определите операцию, вернувшую этот статус, включая интерфейс или 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_playlistclearabort_operation, ns_s_wmpcore_playlistclearabort_state_before, ns_s_wmpcore_playlistclearabort_state_after, время UTC, идентификаторы процесса и потока, версию компонента и идентификатор корреляции. Диагностические данные для этого статуса должны позволять воспроизвести ситуацию, но не раскрывать чувствительные данные; содержимое буферов представляйте длиной и хэшем.
Отличие от соседних результатов
Этот статус нужно отличать от обычного S_OK и от значений того же семейства API, у которых бит severity указывает на сбой; документированное состояние определяет следующее действие.
Точная обработка NS_S_WMPCORE_PLAYLISTCLEARABORT важна, потому что общая ветвь успеха не выражает требуемое следующее действие.
Правильная обработка и восстановление
Обновите фактическое содержимое списка, сохраните пользовательское выделение и удаляйте частичные побочные эффекты только если это допускает контракт операции.
Повторяйте операцию только после документированного изменения входных данных или состояния. Для этого статуса отличайте продолжение протокола от повторного запуска всей высокоуровневой операции.
Практический сценарий
Пользователь отменяет очистку длинного списка воспроизведения. Интерфейс заново загружает коллекцию и показывает оставшиеся элементы вместо пустого списка.
Регрессионный тест должен воспроизвести этот статус, проверить соответствующие выходные данные и состояние, затем изменить только решающее условие и убедиться в ожидаемом соседнем результате или обычном завершении.
Рекомендации разработчикам и администраторам
Пакет данных для поддержки по этому статусу должен содержать первые данные конкретного компонента и эффективную конфигурацию. Ответ службы поддержки для этого статуса должен сохранять исходное условие до того, как перезапуск или неизменный повтор его сотрёт.
Для этого статуса определите владельца повтора, отмены, очистки и сообщения пользователю. Наименее разрушительное исправление для этого статуса — то, которое изменяет зафиксированную причину именно этого кода.
Ссылки
- Microsoft: коды ошибок Windows Media Format SDK — официальный материал Microsoft для интерпретации этого статуса.
- Microsoft: Windows Media Player SDK — официальный материал Microsoft для интерпретации этого статуса.
- Microsoft: событие buffering в Windows Media Player — официальный материал Microsoft для интерпретации этого статуса.
- Microsoft: значения HRESULT — официальный материал Microsoft для интерпретации этого статуса.
Нужно найти другой код? Найти другой код состояния или ошибки.
