Что означает код HRESULT 0xC00E0022 (MQ_ERROR_SENDERID_BUFFER_TOO_SMALL)?

 
Предыдущий Следующий
MQ_ERROR_ILLEGAL_SECURITY_DESCRIPTOR MQ_ERROR_SECURITY_DESCRIPTOR_TOO_SMALL

MQ_ERROR_SENDERID_BUFFER_TOO_SMALL

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

MQ_ERROR_SENDERID_BUFFER_TOO_SMALL — Буфер свойства идентификатора отправителя слишком мал для полученного значения. Это случай чтения свойства переменного размера, для которого нужно выделить больше памяти.

Sender ID — одно из возвращаемых свойств сообщения MSMQ и имеет переменную длину. Ошибка относится к выходному буферу этого свойства, а не к недействительному пользователю или неуспешной проверке подписи сообщения.

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

  • Сохраните размер буфера sender ID, указанный перед receive, и требуемую длину, которую вернула Message Queuing.
  • Увеличьте только хранилище sender ID и повторите чтение по документированному сценарию, не меняя остальные свойства сообщения.
  • Если одновременно запрашивается много переменных свойств, ведите размеры отдельно: размер body, certificate и sender ID нельзя подменять одним общим счётчиком.

Как подтвердить исправление

Исправление подтверждено, когда sender ID возвращается полностью и его длина соответствует фактическим данным; маленький тестовый буфер должен предсказуемо воспроизводить тот же код.

Технические ссылки


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