| Предыдущий | Следующий |
| NS_S_WMPCORE_PLAYLIST_COLLAPSED_TO_SINGLE_MEDIA | NS_S_WMPCORE_MORE_NODES_AVAIABLE |
NS_S_WMPCORE_MEDIA_CHILD_PLAYLIST_OPEN_PENDING
Открытие дочернего списка воспроизведения ожидает завершения
NS_S_WMPCORE_MEDIA_CHILD_PLAYLIST_OPEN_PENDING — это HRESULT 856329 (0x000D1109) Windows Media. В AllStat он описан как «открытие дочернего списка воспроизведения, связанного с этим медиаэлементом, ещё выполняется». В автомате состояний Windows Media Player, Windows Media Format, DRM или Media Foundation это успешное, но содержательно значимое состояние, которое нельзя сводить к обычному S_OK.
Состояние Этот статус нужно сохранять до тех пор, пока не обработаны относящиеся именно к этому коду выходные данные и следующее действие.
Где встречается этот статус
- Этот статус может появляться в callbacks библиотеки, playlist, store или UI plug-in Windows Media Player; фиксируйте точный API, объект и фазу, поскольку одинаковая числовая severity успеха не определяет состояние сама по себе.
- Этот статус может появляться при операциях source, writer, DRM, publishing point или установки Windows Media Format; фиксируйте точный API, объект и фазу, поскольку одинаковая числовая severity успеха не определяет состояние сама по себе.
- Этот статус может появляться при активации topology Media Foundation и настройке удалённых компонентов; фиксируйте точный API, объект и фазу, поскольку одинаковая числовая severity успеха не определяет состояние сама по себе.
Сохраняйте этот статус привязанным к операции, которая его вернула. Интерпретация этого статуса вне контракта этого API может превратить нормальное продолжение или частичный результат в ошибочный повтор либо ложное завершение.
Что должно быть истинно перед принятием результата
Убедитесь, что родительский медиаобъект остаётся действительным до завершения асинхронного открытия дочернего списка и ни один потребитель не перечисляет его как окончательно готовый. Именно это условие определяет, должна ли вызывающая сторона продолжить работу, ожидать, перейти к резервному варианту или завершить операцию.
Для этого статуса также убедитесь, что возвращённые данные относятся к текущему поколению операции, а не унаследованы от предыдущей попытки.
Данные и телеметрия
- Сохраните идентификатор родительского медиаобъекта.
- Сохраните URI дочернего списка воспроизведения.
- Сохраните идентификатор асинхронной операции.
- Сохраните состояние открытия и обратный вызов.
- Сохраните сведения об отмене или тайм-ауте.
Для этого статуса также зафиксируйте время UTC, идентификаторы процесса и потока, версию компонента, поколение операции и correlation ID. Не помещайте чувствительное содержимое в журналы; используйте длины, хэши, GUID и разрешённые политикой метаданные.
Последовательность диагностики
- Зафиксируйте исходные
0x000D1109иNS_S_WMPCORE_MEDIA_CHILD_PLAYLIST_OPEN_PENDINGдо того, как исключения, знаковое форматирование или общая оболочка успеха удалят символическое значение. - Определите интерфейс, метод, callback, службу, драйвер или broker, вернувший этот статусвключая версию компонента, процесс, поток и correlation ID.
- Докажите решающее условие для этого статуса : родительский медиаобъект должен оставаться действительным до завершения асинхронного открытия дочернего списка, а потребители не должны считать его окончательно сформированным раньше времени.
- Для этого статуса проверьте каждый выходной параметр, счётчик, дескриптор объекта, callback, элемент очереди, media item, отчёт, транзакцию, элемент topology или signaling response, созданные вызовом.
- Сравните состояние непосредственно до и после этого статуса и убедитесь, что владение, время жизни, сохранение и видимые пользователю эффекты соответствуют статусу.
- Воспроизведите этот статус на минимальном входе, затем измените только предполагаемую причину и убедитесь, что возвращаемое значение или постусловие изменилось ожидаемым образом.
Правильная обработка и восстановление
Удерживайте родительский объект и дочернюю операцию до завершения, ожидайте соответствующее событие и передавайте отмену через ту же операцию. Отключите команды, которым требуются дочерние узлы.
Повторяйте операцию после этого статуса только если изменился зафиксированный входной параметр, возможность, ресурс, политика или состояние.
Отличие от соседних результатов
Это состояние уже общего «операция ожидает завершения»: неразрешённым объектом здесь является именно дочерний список воспроизведения, связанный с медиаэлементом.
Использование одной общей ветви успешного результата для этого статуса и соседнего состояния может привести к потере результата, повторению работы или неверному сообщению о завершении.
Практический сценарий
Элемент библиотеки ссылается по сети на дочерний список ASX. Интерфейс показывает загружаемый узел и перечисляет дорожки только после завершения обратного вызова открытия.
Регрессионный тест должен воспроизвести этот статус, проверить все соответствующие выходные данные и состояние, затем измените только решающее условие и убедитесь в обычном завершении или ожидаемом соседнем результате.
Рекомендации разработчикам и администраторам
Обрабатывайте этот статус отдельной ветвью до обычного SUCCEEDED(hr) , если допустимость результата или следующий метод отличаются. В телеметрии сохраняйте 0x000D1109, метод NS_S_WMPCORE_MEDIA_CHILD_PLAYLIST_OPEN_PENDING , сборку компонента и идентификатор корреляции.
Для этого статуса сохраните контекст первого появления до перезапуска служб, очистки хранилищ или перестроения конфигурации. Документируйте, кто отвечает за продолжение, отмену, cleanup, fallback и пользовательские сообщения для этого статуса.
Ссылки
- Microsoft: коды ошибок и успешных результатов Windows Media Format SDK — официальный материал Microsoft, относящийся к этому статусу.
- Microsoft: Windows Media Player SDK — официальный материал Microsoft, относящийся к этому статусу.
- Microsoft: Media Foundation SDK — официальный материал Microsoft, относящийся к этому статусу.
- Microsoft: значения HRESULT — официальный материал Microsoft, относящийся к этому статусу.
Нужно найти другой код? Найти другой код состояния или ошибки.