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