Что означает код HRESULT 0x8027000B (NAP_E_MAXSIZE_TOO_SMALL)?

 
Предыдущий Следующий
NAP_E_ID_NOT_FOUND NAP_E_SERVICE_NOT_RUNNING

NAP_E_MAXSIZE_TOO_SMALL

Соединение не может передать пакет SoH требуемого размера

NAP_E_MAXSIZE_TOO_SMALL — это HRESULT 0x8027000B (знаковое десятичное значение -2144927733, беззнаковое десятичное значение 2150039563). AllStat, используя winerror.h, описывает его как «Максимальный размер соединения слишком мал для пакета SoH». Значение имеет признак ошибки, facility 0x27 и поле кода 0x000B.

Это результат устаревшей платформы Network Access Protection. Microsoft указывает, что NAP недоступна начиная с Windows 10, а современные выпуски Windows Server не содержат прежние роли NAP, HRA и HCAP. Код следует применять к поддерживаемым устаревшим системам, архивной телеметрии, компонентам совместимости и миграции.

Ёмкость транспорта меньше требуемого объёма данных о состоянии

Клиент принудительного применения задаёт для соединения ProtocolMaxSize, и обмен NAP должен укладываться в это ограничение транспорта. NAP_E_MAXSIZE_TOO_SMALL означает, что доступного максимума недостаточно для требуемого пакета Statement of Health. Это ошибка согласования ёмкости, а не признак повреждения полей SoH или несоответствия конечной точки политике.

Почему доступного размера недостаточно

  • Транспорт принудительного применения объявляет очень малый предел полезной нагрузки или дважды вычитает размер заголовков.
  • Слишком много SHA добавляют крупные заявления в один обмен, и их совокупный размер превышает бюджет соединения.
  • Пользовательский атрибут состояния содержит подробный текст, сертификаты или диагностические данные, которым не место в компактном SoH.
  • Вызывающая сторона задаёт ProtocolMaxSize в неверных единицах или обрезает значение более узким целочисленным типом.
  • Изменившаяся сетевая инкапсуляция добавляет накладные расходы, но клиент продолжает использовать прежний максимум.

Учёт размера

  • Запишите ProtocolMaxSize, размер сериализованного SoH, накладные расходы транспорта, число атрибутов и закодированную длину каждого из них.
  • Зафиксируйте, какой клиент принудительного применения задал максимум и менялось ли значение между поколениями соединения.
  • Сравните тот же набор данных состояния через другой транспорт принудительного применения, чтобы отделить рост пакета от ограничения транспорта.
  • Записывайте логические размеры до сериализации и окончательный размер в передаваемом виде, чтобы были видны расходы на выравнивание и обрамление.

Изменение правильной величины

  • Проверьте, что SetMaxSize получает размер в байтах и полную беззнаковую структуру, ожидаемую API.
  • Удалите из пользовательских атрибутов SoH повторяющиеся или не относящиеся к политике данные, не отбрасывая обязательные поля идентификации и ошибок.
  • Перед увеличением значения установите реальный максимум протокола принудительного применения: объявление размера больше возможностей транспорта приведёт к последующему обрезанию.
  • Повторите проверку с точным сериализованным пакетом и убедитесь, что он помещается после всей инкапсуляции.

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

NAP_E_INVALID_PACKET означает недействительную структуру, тогда как этот код может возвращаться для полностью корректного, но слишком большого пакета. Нельзя использовать NAP_E_MISSING_SOH как запасной результат после молчаливого удаления слишком крупных данных. Ошибка фрагментации транспорта может возникнуть позже и не должна называться этой ошибкой ёмкости NAP без подтверждения места вызова.

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

Повтор с неизменным максимумом и тем же размером пакета снова завершится ошибкой. Для восстановления нужен поддерживаемый транспортом больший бюджет, меньший соответствующий стандарту SoH или меньше необязательных атрибутов. Нельзя обрезать сериализованный пакет по пределу байтов: это превратит ясную ошибку ёмкости в недействительное или вводящее в заблуждение сообщение о состоянии.

Практический пример

Пользовательский SHA добавляет в SoH диагностическую цепочку сертификатов, из-за чего совокупный пакет превышает ProtocolMaxSize VPN-клиента принудительного применения. NAP возвращает NAP_E_MAXSIZE_TOO_SMALL. Перенос цепочки в отдельный диагностический канал и сохранение в SoH только компактного кода результата восстанавливают обмен.

Ссылки


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