Что означает код ошибки Windows 546 (ERROR_PORT_MESSAGE_TOO_LONG)?

 
Предыдущий Следующий
ERROR_INVALID_PORT_ATTRIBUTES ERROR_INVALID_QUOTA_LOWER

ERROR_PORT_MESSAGE_TOO_LONG

Что означает ERROR_PORT_MESSAGE_TOO_LONG

ERROR_PORT_MESSAGE_TOO_LONG — сообщение LPC/ALPC превышает максимальный размер, допустимый для native port request или request/reply операции.

Ограничение относится ко всему представлению сообщения и может учитывать заголовок, attributes и выравнивание, а не только полезную нагрузку приложения. Поэтому увеличение выделенного application buffer само по себе не меняет лимит транспорта.

Что проверить

  • Полный размер сообщения, размер payload, версию заголовка и фактический предел используемого API.
  • Единицы всех полей длины: распространённая ошибка — передать число символов там, где ожидаются байты.
  • Переполнение при сложении вложенных размеров и различия структуры между клиентом и сервером.
  • Архитектуру и сборку Windows, если код использует native структуры напрямую.

Что делать

Разбивайте объёмные данные на ограниченные фрагменты либо помещайте их в shared memory/file-backed section, передавая через порт только небольшой descriptor/context. Не обрезайте структурированное сообщение и не выделяйте память только по недоверенному заявленному размеру.

Ссылки


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