| Предыдущий | Следующий |
| NS_S_REBOOT_RECOMMENDED | NS_S_EOSRECEDING |
NS_S_REBOOT_REQUIRED
После установки Windows Media требуется перезагрузка до продолжения работы
NS_S_REBOOT_REQUIRED — это HRESULT 862969 (0x000D2AF9) Windows Media. В AllStat он описан как «установка завершилась успешно, однако очистка некоторых файлов не закончена; чтобы продолжить, необходимо перезагрузить компьютер». В автомате состояний Windows Media Player, Windows Media Format, DRM или Media Foundation это успешное, но содержательно значимое состояние, которое нельзя сводить к обычному S_OK.
Приложение должно обработать NS_S_REBOOT_REQUIRED отдельной ветвью до того, как общая ветвь успеха отбросит необходимые детали.
Где встречается этот статус
- Этот статус может появляться в 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 может превратить нормальное продолжение или частичный результат в ошибочный повтор либо ложное завершение.
Данные и телеметрия
- Сохраните идентификаторы пакета и операции.
- Сохраните ожидающие файловые операции.
- Сохраните контрольную точку для продолжения.
- Сохраните запрос перезагрузки и крайний срок.
- Сохраните результат проверки после загрузки системы.
Для этого статуса также зафиксируйте время UTC, идентификаторы процесса и потока, версию компонента, поколение операции и correlation ID. Не помещайте чувствительное содержимое в журналы; используйте длины, хэши, GUID и разрешённые политикой метаданные.
Что должно быть истинно перед принятием результата
Убедитесь, что вызывающая сторона останавливает зависимую работу и сохраняет достаточно состояния для продолжения после перезапуска ОС. Именно это условие определяет, должна ли вызывающая сторона продолжить работу, ожидать, перейти к резервному варианту или завершить операцию.
Для этого статуса также убедитесь, что возвращённые данные относятся к текущему поколению операции, а не унаследованы от предыдущей попытки.
Правильная обработка и восстановление
Сохраните контрольную точку установки, уведомите пользователя или оркестратор и не разрешайте операции, зависящие от новых файлов, пока завершение перезагрузки не подтверждено.
Перед повторным выполнением работы после этого статусасогласуйте побочные эффекты и докажите идемпотентность следующей попытки.
Последовательность диагностики
- Зафиксируйте исходные
0x000D2AF9иNS_S_REBOOT_REQUIREDдо того, как исключения, знаковое форматирование или общая оболочка успеха удалят символическое значение. - Определите интерфейс, метод, callback, службу, драйвер или broker, вернувший этот статусвключая версию компонента, процесс, поток и correlation ID.
- Докажите решающее условие для этого статуса : вызывающая сторона должна остановить зависимую работу и сохранить достаточно состояния для продолжения после перезапуска операционной системы.
- Для этого статуса проверьте каждый выходной параметр, счётчик, дескриптор объекта, callback, элемент очереди, media item, отчёт, транзакцию, элемент topology или signaling response, созданные вызовом.
- Сравните состояние непосредственно до и после этого статуса и убедитесь, что владение, время жизни, сохранение и видимые пользователю эффекты соответствуют статусу.
- Воспроизведите этот статус на минимальном входе, затем измените только предполагаемую причину и убедитесь, что возвращаемое значение или постусловие изменилось ожидаемым образом.
Отличие от соседних результатов
Вариант с рекомендацией допускает продолжение работы; здесь перезагрузка является обязательным условием дальнейшего продвижения.
Использование одной общей ветви успешного результата для этого статуса и соседнего состояния может привести к потере результата, повторению работы или неверному сообщению о завершении.
Рекомендации разработчикам и администраторам
В панелях мониторинга классифицируйте этот статус по фактическому состоянию — ожидание, частичный результат, завершение, идемпотентность, перенаправление, деградация или действие политики — а не объединяйте его с обычным успехом.
Для этого статуса минимальное целевое изменение состояния лучше всего подтверждает, что диагностированное условие действительно было причиной. Явно определите, кто отвечает за продолжение, отмену, очистку, резервный путь и сообщение пользователю для этого статуса.
Практический сценарий
Новый медиакомпонент нельзя загрузить, пока связанная служба работает. Установщик сохраняет шаг продолжения и блокирует активацию до следующей загрузки системы.
Регрессионный тест должен воспроизвести этот статус, проверить все соответствующие выходные данные и состояние, затем измените только решающее условие и убедитесь в обычном завершении или ожидаемом соседнем результате.
Ссылки
- Microsoft: коды ошибок и успешных результатов Windows Media Format SDK — официальный материал Microsoft, относящийся к этому статусу.
- Microsoft: Windows Media Player SDK — официальный материал Microsoft, относящийся к этому статусу.
- Microsoft: Media Foundation SDK — официальный материал Microsoft, относящийся к этому статусу.
- Microsoft: значения HRESULT — официальный материал Microsoft, относящийся к этому статусу.
Нужно найти другой код? Найти другой код состояния или ошибки.