| Предыдущий | Следующий |
| NS_S_REBOOT_REQUIRED | NS_S_CHANGENOTICE |
NS_S_EOSRECEDING
При перемотке назад достигнут конец потока
NS_S_EOSRECEDING — это HRESULT 864009 (0x000D2F09) Windows Media. В AllStat он описан как «при перемотке назад достигнут EOS». В автомате состояний Windows Media Player, Windows Media Format, DRM или Media Foundation это успешное, но содержательно значимое состояние, которое нельзя сводить к обычному S_OK.
Высокоуровневый запрос, вернувший NS_S_EOSRECEDING , считается завершённым только после того, как вызывающая сторона проверит обозначенное этим результатом состояние.
Что должно быть истинно перед принятием результата
Убедитесь, что логика обратного воспроизведения или позиционирования трактует эту границу как конечную для текущего направления, не повреждая обычную шкалу времени прямого воспроизведения. Вызывающая сторона должна отклонить NS_S_EOSRECEDING , если выходные данные и состояние не соответствуют зафиксированному условию.
Для NS_S_EOSRECEDINGтакже убедитесь, что возвращённые данные относятся к текущему поколению операции, а не унаследованы от предыдущей попытки.
Где встречается этот статус
NS_S_EOSRECEDINGможет появляться в callbacks библиотеки, playlist, store или UI plug-in Windows Media Player; фиксируйте точный API, объект и фазу, поскольку одинаковая числовая severity успеха не определяет состояние сама по себе.NS_S_EOSRECEDINGможет появляться при операциях source, writer, DRM, publishing point или установки Windows Media Format; фиксируйте точный API, объект и фазу, поскольку одинаковая числовая severity успеха не определяет состояние сама по себе.NS_S_EOSRECEDINGможет появляться при активации topology Media Foundation и настройке удалённых компонентов; фиксируйте точный API, объект и фазу, поскольку одинаковая числовая severity успеха не определяет состояние сама по себе.
Сохраняйте NS_S_EOSRECEDING привязанным к операции, которая его вернула. Интерпретация NS_S_EOSRECEDING вне контракта этого API может превратить нормальное продолжение или частичный результат в ошибочный повтор либо ложное завершение.
Последовательность диагностики
- Зафиксируйте исходные
0x000D2F09иNS_S_EOSRECEDINGдо того, как исключения, знаковое форматирование или общая оболочка успеха удалят символическое значение. - Определите интерфейс, метод, callback, службу, драйвер или broker, вернувший
NS_S_EOSRECEDINGвключая версию компонента, процесс, поток и correlation ID. - Докажите решающее условие для
NS_S_EOSRECEDING: логика обратного воспроизведения или позиционирования должна считать эту границу конечной для текущего направления, не нарушая обычную шкалу времени прямого воспроизведения. - Для
NS_S_EOSRECEDINGпроверьте каждый выходной параметр, счётчик, дескриптор объекта, callback, элемент очереди, media item, отчёт, транзакцию, элемент topology или signaling response, созданные вызовом. - Сравните состояние непосредственно до и после
NS_S_EOSRECEDINGи убедитесь, что владение, время жизни, сохранение и видимые пользователю эффекты соответствуют статусу. - Воспроизведите
NS_S_EOSRECEDINGна минимальном входе, затем измените только предполагаемую причину и убедитесь, что возвращаемое значение или постусловие изменилось ожидаемым образом.
Данные и телеметрия
- Сохраните поток и направление воспроизведения:
NS_S_EOSRECEDING. - Сохраните запрошенную и фактическую временные позиции:
NS_S_EOSRECEDING. - Сохраните последний сэмпл:
NS_S_EOSRECEDING. - Сохраните скорость и режим позиционирования:
NS_S_EOSRECEDING. - Сохраните следующее состояние проигрывателя:
NS_S_EOSRECEDING.
Для NS_S_EOSRECEDINGтакже зафиксируйте время UTC, идентификаторы процесса и потока, версию компонента, поколение операции и correlation ID. Не помещайте чувствительное содержимое NS_S_EOSRECEDING в журналы; используйте длины, хэши, GUID и разрешённые политикой метаданные.
Правильная обработка и восстановление
На начальной границе остановите воспроизведение либо измените направление, нормализуйте позицию и не запрашивайте дополнительные обратные сэмплы за пределами EOS.
Продолжение после NS_S_EOSRECEDING в рамках документированного автомата состояний отличается от полного перезапуска операции.
Практический сценарий
Проигрыватель перематывает записанный поток назад до первого сэмпла. На нулевой отметке он останавливает перемотку и разрешает прямое воспроизведение, а не пытается снова позиционироваться раньше начала.
Регрессионный тест должен воспроизвести NS_S_EOSRECEDINGпроверьте все соответствующие выходные данные и состояние, затем измените только решающее условие и убедитесь в обычном завершении или ожидаемом соседнем результате.
Отличие от соседних результатов
Обычный EOS при прямом воспроизведении относится к другой границе шкалы времени; это состояние возникает именно при обратном движении или перемотке.
Для NS_S_EOSRECEDING, соседний результат может означать окончательный вывод, необходимость дополнительной работы или переход к резервному варианту.
Рекомендации разработчикам и администраторам
Когда NS_S_EOSRECEDING При передаче результата через границы COM, RPC, управляемого кода, сценариев, драйвера или службы сохраняйте его беззнаковое 32-битное значение. Модульные тесты для NS_S_EOSRECEDING должны проверять постусловие конкретного кода, а не только успешность по severity.
Полный сброс системы после NS_S_EOSRECEDING не оправдан, если данные именно по этому коду не указывают на общесистемную причину. Явно определите, кто отвечает за продолжение, отмену, очистку, резервный путь и сообщение пользователю для NS_S_EOSRECEDING.
Ссылки
- Microsoft: коды ошибок и успешных результатов Windows Media Format SDK — официальный материал Microsoft, относящийся к
NS_S_EOSRECEDING. - Microsoft: Windows Media Player SDK — официальный материал Microsoft, относящийся к
NS_S_EOSRECEDING. - Microsoft: Media Foundation SDK — официальный материал Microsoft, относящийся к
NS_S_EOSRECEDING. - Microsoft: значения HRESULT — официальный материал Microsoft, относящийся к
NS_S_EOSRECEDING.
Нужно найти другой код? Найти другой код состояния или ошибки.