| Предыдущий | Следующий |
| MQ_ERROR_UNSUPPORTED_ACCESS_MODE | MQ_ERROR_DELETE_CN_IN_USE |
MQ_ERROR_RESULT_BUFFER_TOO_SMALL
Что означает MQ_ERROR_RESULT_BUFFER_TOO_SMALL
MQ_ERROR_RESULT_BUFFER_TOO_SMALL (0xC00E0046) — Буфер результата слишком мал.
В подсистеме «COM/WinRT» результат 0xC00E0046 относится к области «контракт вызываемого interface, аргументы и state объекта». Описание «буфер результата слишком мал» сужает проверку до темы «mq, result, buffer, превышение, small».
Что проверить и как подтвердить исправление
В первую очередь сопоставьте первый отказ с фактическими параметрами операции. Для 0xC00E0046 в сценарии «буфер результата слишком мал» воспроизведите отказ на минимальном объекте и меняйте только одно условие за запуск, чтобы отделить неверный вход от состояния системы.
Сопоставьте с результатом 0xC00E0046 следующие данные: IID и method, thread/apartment, argument values, object state и исходный HRESULT; отдельно запишите ID, HRESULT. До исправления 0xC00E0046 сохраните исходное состояние объекта по теме «mq, result, buffer, превышение, small».
Практическое исправление для 0xC00E0046: исправьте параметры и жизненный цикл объекта в соответствии с контрактом первого неуспешного метода. В контексте условия «буфер результата слишком мал» для 0xC00E0046 оно должно устранить подтверждённую причину, а не скрыть исходный HRESULT.
Считайте исправление подтверждённым только после устойчивого повтора исходного сценария без результата 0xC00E0046 и без обхода штатных проверок.
Документация для результата 0xC00E0046: MSMQ message properties · MQReceiveMessage · MQReceiveMessageByLookupId.
Нужно найти другой код? Найти другой код состояния или ошибки.