Что означает код HRESULT 0x80270012 (NAP_E_SHV_CONFIG_NOT_FOUND)?

 
Предыдущий Следующий
NAP_E_SHV_CONFIG_EXISTED NAP_E_SHV_TIMEOUT

NAP_E_SHV_CONFIG_NOT_FOUND

Идентификатор конфигурации SHV не найден

NAP_E_SHV_CONFIG_NOT_FOUND — это HRESULT 0x80270012 (знаковое десятичное значение -2144927726, беззнаковое десятичное значение 2150039570). AllStat на основании winerror.h описывает его так: «Конфигурация SHV не найдена». Значение обозначает ошибку, имеет код средства 0x27 и поле кода 0x0012.

Для случая поиска отсутствующей конфигурации SHV этот HRESULT относится к устаревшей технологии Network Access Protection: NAP недоступна начиная с Windows 10, а современные выпуски Windows Server не содержат прежних ролей NAP, HRA и HCAP. Поэтому его следует учитывать при сопоставлении запрошенного идентификатора с хранилищем конфигураций SHV на поддерживаемых устаревших системах, в архивной телеметрии, компонентах совместимости или проектах миграции, не ожидая наличия прежней платформы на современном компьютере.

К конфигурации отдельной политики обратились до её создания или после удаления

Microsoft документирует этот результат для INapComponentConfig3::GetConfigFromID и SetConfigToID. Ненулевой configID сначала должен быть выделен через NewConfig; идентификатор конфигурации 0 зарезервирован для конфигурации SHV по умолчанию. Поэтому ошибка указывает на отсутствие состояния для конкретного идентификатора, а не на незарегистрированный SHV или неправильно сформированный BLOB конфигурации.

Причины отсутствия конфигурации

  • Управляющая система сразу вызывает SetConfigToID, не получив успешного результата NewConfig для назначенного идентификатора.
  • DeleteConfig удалил запись, пока другой администратор или сеанс пользовательского интерфейса продолжает её редактировать.
  • NPS восстановил метаданные политики, но соответствующее хранилище конфигураций SHV восстановлено не было.
  • configID, имеющий смысл только в пространстве имён другого валидатора, передан не тому SHV.
  • Устаревший кэш управления ссылается на идентификатор, заменённый при миграции политики.

Что следует сравнить

  • Зафиксируйте configID, идентичность SHV, имя метода, длину данных и транзакцию управления политикой.
  • Проверьте, не должна ли операция использовать конфигурацию по умолчанию: для неё configID 0 имеет особое документированное значение.
  • Сопоставьте историю NewConfig и DeleteConfig с завершившимся ошибкой запросом Get или Set.
  • Сравните известные NPS идентификаторы конфигураций с записями, присутствующими в хранилище SHV.

Исправление жизненного цикла

  • Убедитесь, что запрос адресован правильному SHV и правильному объекту политики.
  • Для новой политики вызовите NewConfig и потребуйте успешного завершения до открытия интерфейса редактирования или сохранения данных.
  • Если идентификатор был удалён, отмените работу устаревших редакторов и получите новую назначенную конфигурацию, а не воссоздавайте прежнее состояние без достаточных оснований.
  • При рассогласовании после восстановления согласуйте полное соответствие NPS и SHV до обработки трафика политики.

Отличие от соседних результатов NAP

NAP_E_SHV_CONFIG_EXISTED означает, что NewConfig обнаружил запись, которой NPS не ожидал. NAP_E_ID_NOT_FOUND в общем случае относится к отсутствующему идентификатору компонента NAP; этот код указывает именно на идентификатор конфигурации внутри SHV. Ошибки разбора или версии данных конфигурации должны иметь собственный HRESULT и не следуют из одного лишь отсутствия записи.

Повтор и восстановление

Повтор по схеме «создать, затем сохранить» безопасен только тогда, когда управляющий рабочий процесс уполномочен создавать новую конфигурацию и отсутствует конкурирующее удаление. Чтение намеренно удалённого идентификатора должно оставаться штатным результатом «не найдено». Не подставляйте молча конфигурацию по умолчанию: это может изменить смысл политики работоспособности.

Практический сценарий

Консоль управления NPS открывает старую вкладку политики после того, как другой администратор удалил конфигурацию SHV этой политики. При сохранении вкладка вызывает SetConfigToID и получает NAP_E_SHV_CONFIG_NOT_FOUND. Консоль должна обновить данные и закрыть устаревший редактор, а не незаметно воссоздавать удалённую политику.

Ссылки


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