| Предыдущий | Следующий |
| NAP_E_NOT_PENDING | NAP_E_MAXSIZE_TOO_SMALL |
NAP_E_ID_NOT_FOUND
Идентификатор компонента NAP не найден
NAP_E_ID_NOT_FOUND — это HRESULT 0x8027000A (знаковое десятичное значение -2144927734, беззнаковое десятичное значение 2150039562). AllStat, используя winerror.h, описывает его как «Идентификатор компонента NAP не найден». Значение имеет признак ошибки, facility 0x27 и поле кода 0x000A.
Это результат устаревшей платформы Network Access Protection. Microsoft указывает, что NAP недоступна начиная с Windows 10, а современные выпуски Windows Server не содержат прежние роли NAP, HRA и HCAP. Поэтому код следует рассматривать применительно к поддерживаемым устаревшим системам, архивной телеметрии, компонентам совместимости или миграции, а не ожидать наличия старой платформы на современном компьютере.
Запрос управления обращается к отсутствующему компоненту
В опубликованной таблице ошибок это значение определено широко и не привязано к одному конкретному методу. Оно может возвращаться, когда код управления, привязки, получения состояния или настройки ищет компонент NAP по идентификатору, но соответствующая запись отсутствует. Точный владелец определяется по вызванному API и категории компонента: одного числового идентификатора недостаточно, чтобы понять, отсутствует SHA, SHV или клиент принудительного применения.
Почему поиск не находит запись
- Вызывающая сторона использует идентификатор из другого пространства идентификаторов компонентов NAP или из другой среды развёртывания.
- Компонент был снят с регистрации, но устаревшая политика, кеш или автоматизация всё ещё ссылаются на него.
- Преобразование между десятичной и шестнадцатеричной формой, знаковое приведение или разбор конфигурации изменили 32-разрядный идентификатор.
- При обновлении компоненту назначили новый постоянный идентификатор, но не перенесли все ссылки на сервере и клиенте.
- Операция удаления или запроса повторно выполняется после того, как целевая запись уже удалена.
Данные для проверки поиска
- Зафиксируйте исходный 32-разрядный идентификатор в шестнадцатеричном и десятичном виде, имя API, роль компьютера и категорию компонента.
- Перечислите текущие регистрации и сравнивайте идентификаторы, а не только отображаемые имена.
- Запишите источник идентификатора: манифест, реестр, политика, атрибут пакета, командная строка или база данных управления.
- Сопоставьте ошибку с недавними изменениями регистрации, восстановлением образа, развёртыванием политики и удалением компонентов.
Поиск устаревшей ссылки
- Убедитесь, что требуемый компонент установлен и зарегистрирован именно на том компьютере, где выполняется поиск.
- Проследите идентификатор до авторитетной конфигурации и сравните его с регистрацией работающего компонента.
- Для идемпотентного удаления явно определите, допустимо ли состояние «уже отсутствует», вместо того чтобы считать любой промах критической ошибкой.
- Для рабочего запроса или привязки сначала восстановите отсутствующую регистрацию, а затем повторите операцию.
Отличие от соседних результатов NAP
NAP_E_NOT_REGISTERED обычно возвращается, когда компонент пытается выполнить операцию, требующую его собственной предварительной регистрации. NAP_E_ID_NOT_FOUND — более общий результат поиска, который может быть возвращён внешнему вызывающему коду управления. NAP_E_CONFLICTING_ID означает, что запись существует, но идентификатор уже принадлежит зарегистрированной сущности.
Повтор и восстановление
Повторять операцию имеет смысл только после изменения авторитетного идентификатора или набора регистраций. Создание фиктивного компонента лишь для успешного поиска может направить обмен сведениями о состоянии не тому обработчику. Если операция выполняет очистку и отсутствие записи является допустимым конечным состоянием, это толкование следует зафиксировать в конкретном месте вызова, а не глобально преобразовывать HRESULT в успех.
Практический пример
Сценарий управления переносит идентификатор SHV из выведенной из эксплуатации тестовой среды в рабочую и пытается обновить соответствующий компонент. В рабочей среде такой регистрации нет, поэтому возвращается NAP_E_ID_NOT_FOUND. Операция исправляется заменой устаревшего значения на зарегистрированный идентификатор рабочего SHV.
Ссылки
- Microsoft: константы ошибок NAP
- Microsoft: интерфейсы NAP
- Microsoft: модуль регистрации SHV
- Microsoft: пример регистрации SHA
Нужно найти другой код? Найти другой код состояния или ошибки.
