Site icon EfmSoft

Что означает код HRESULT 0xC00D14B4 (NS_E_PLAYLIST_ENTRY_ALREADY_PLAYING)?

 
Предыдущий Следующий
NS_E_PUBLISHING_POINT_STOPPED NS_E_EMPTY_PLAYLIST

NS_E_PLAYLIST_ENTRY_ALREADY_PLAYING

Диагностика NS_E_PLAYLIST_ENTRY_ALREADY_PLAYING — диагностика в Windows Media Services

Механизм и область действия

Этот результат (0xC00D14B4) обозначает запрошенный start/jump активировал бы entry, который уже является текущим воспроизводимым entry. Диагностику следует начинать с объекта Windows Media Services и точной операции, вернувшей HRESULT.

Parser списка воспроизведения WMS преобразует WSX/SMIL или другой поддерживаемый источник во внутрипамятный список воспроизведения для клиента. Когда этот результат возвращается, идентификатор записи, вложенность, текущее направление и состояние shutdown важны независимо от существования указанного медиафайла. В он трассировке сохраните список воспроизведения в том виде, в котором его видит parser после redirect или динамической генерации. При диагностике он, server работает с разрешённым документом и идентификаторами записей в памяти, а не обязательно с текстом, который оператор открыл первоначально. Решающий вопрос состоит в том, соответствуют ли живой объект и значения этой границе; базовое описание AllStat само по себе не показывает поколение объекта, выбранный подключаемый модуль или сбой нижнего уровня.

Структура сбоя для этого кода

В типичном инциденте этот результат сервер достигает условия «запрошенный start/jump активировал бы entry, который уже является текущим воспроизводимым entry» и отклоняет операцию до безопасного перехода к следующей стадии. Поэтому запись инцидента должна объединять идентификатор playlist object, ID текущего entry, ID запрошенного entry, направление playback и последовательность commands, поколение объекта и точный административный либо protocol request. Пример воспроизведения: операция достигает условия «запрошенный start/jump активировал бы entry, который уже является текущим воспроизводимым entry» при значениях: идентификатор playlist object, ID текущего entry, ID запрошенного entry, направление playback и последовательность commands.

Полезная отрицательная проверка — сделать операцию idempotent либо выбирать другую entry только после подтверждения текущей entry. Если после этого тот же этот результат продвинуться дальше, результат подтверждает эту границу. Если он сохраняется, вернитесь к первому событию нижнего уровня, не расширяя восстановительные действия.

Соблазнительная, но ошибочная реакция — повторно открыть указанный медиафайл; конфликт находится в состоянии playlist. Это не проверяет важное различие: отсутствие записи в playlist означает отсутствие целевого идентификатора, а не уже активную запись. Сохраняйте символическое имя и данные владельца вместо общего сообщения COM.

Данные, отделяющие этот код

ДанныеПочему это важно для него
Решающее состояниеидентификатор playlist object, ID текущего entry, ID запрошенного entry, направление playback и последовательность commands
Ответственный объектЗапишите server, publishing point, playlist, namespace node, plug-in или элемент cache, вернувший он, включая время его создания или restart.
Первый нижележащий результатСохраните первое событие Win32, socket, COM, parser или plug-in до HRESULT; более поздние wrappers могут сопоставлять несколько причин с ним.
Контролируемое сравнениеИспользуйте заведомо исправный объект того же типа и измените только предварительное условие «запрошенный start/jump активировал бы entry, который уже является текущим воспроизводимым entry».
Конфиденциальные данныеПо возможности записывайте identifiers, lengths, hashes и обезличенные URL; не публикуйте passwords, authorization files или несвязанные client data.

Минимальный полезный эксперимент

  1. Зафиксируйте 0xC00D14B4, он, точное API/administrative action и время первого сбоя.
  2. Сохраните идентификатор playlist object, ID текущего entry, ID запрошенного entry, направление playback и последовательность commands.
  3. Подтвердите, что объект относится к текущему поколению WMServer, publishing point или presentation.
  4. Выполните один изолированный эксперимент: сделайте операцию idempotent либо выбирайте другую entry только после подтверждения текущей entry.
  5. Повторите исходную операцию он через тот же protocol и service account; не подменяйте её другим client-side test.
  6. После этого результатаподтвердите ожидаемое следующее состояние и сохраните более поздний HRESULT как отдельный результат pipeline.

Успех означает, что та же операция проходит эту контрольную точку и достигает ожидаемого следующего состояния, а не просто что символический код исчезает.

Не объединяйте соседние значения HRESULT

Основное различие: Отсутствие записи в playlist означает отсутствие целевого идентификатора, а не уже активную запись.

Близкий результатДругая контрольная точка
NS_E_EMPTY_PLAYLISTдля него.
NS_I_PLAYLIST_CHANGE_RECEDINGПо отношению к этому результатуэтот соседний результат относится к другому состоянию или ветви проверки, даже если видимый пользователю симптом похож.
NS_E_PLAYLIST_PARSE_FAILUREИспользуйте тип объекта и последовательность операций, чтобы определить, какой результат является первичным.

Как интерпретировать второй результат

Наблюдение при повторной проверкеТолкование
Тот же вызов по-прежнему возвращает онОтклонённое предварительное условие не изменилось либо caller всё ещё использует старое поколение object/configuration.
Операция проходит дальше, и появляется более поздний кодЭта граница пройдена. После этого результатадиагностируйте новый код на его собственной стадии источника, анализатора, приёмника, сети или клиента.
Новый объект работает, а сохранённый — нетУчаствуют lifetime или stale context объекта; исправьте lifecycle вместо machine-wide workaround.
Сбой возникает только для одного publishing point, playlist, ключа cache или plug-inдля него.

Изменения, которые не доказывают причину

Технические ссылки

Завершайте диагностику только после того, как он перестанет возвращаться на актуальном объекте и будет подтверждено ожидаемое следующее состояние.


Нужно найти другой код? Найти другой код состояния или ошибки.

Exit mobile version