| Предыдущий | Следующий |
| 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. Консоль должна обновить данные и закрыть устаревший редактор, а не незаметно воссоздавать удалённую политику.
Ссылки
- Microsoft: константы ошибок NAP
- Microsoft: SetConfigToID
- Microsoft: GetConfigFromID
- Microsoft: обязательный предварительный вызов NewConfig
Нужно найти другой код? Найти другой код состояния или ошибки.