| Предыдущий | Следующий |
| OSS_PDU_RANGE | OSS_DATA_ERROR |
OSS_MORE_INPUT
OSS_MORE_INPUT (0x80093004) — результат OSS ASN.1 runtime для преждевременного конца encoded input. Decoder достигает конца переданного диапазона байтов до полного восстановления PDU. Поскольку объявленная длина frame и фактически полученные байты имеют решающее значение для этого условия, диапазон HRESULT Microsoft следует рассматривать вместе с документацией return code OSS Nokalva. Начните исследование с фиксации offset decoder в момент исчерпания данных, затем отделите закодированное значение от сгенерированных артефактов, аргументов вызова и runtime-пакета, реально загруженного процессом.
Где остановилась обработка
На границе преждевременного конца encoded input зафиксируйте первую OSS-функцию, вернувшую значение, и отметьте, выполнялись ли encode, decode, copy, compare, constraint validation или настройка trace. Сохраните выбранный PDU, правила кодирования и границы transport segmentation, base64 или чтения файла; иначе внешний certificate/security wrapper может скрыть полезный результат codec за общей ошибкой.
Факты, меняющие вывод
| Запишите | Диагностическое значение |
|---|---|
| объявленная длина frame и фактически полученные байты | Локализует конкретное сообщение, allocation, module или границу API |
| offset decoder в момент исчерпания данных | Отделяет поведение, зависящее от payload, от состояния сборки и процесса |
| границы transport segmentation, base64 или чтения файла | Делает сравнение воспроизводимым без изменения исходного артефакта |
Похожие имена, разные сбои
Увеличение output allocation не исправляет это состояние; OSS_MORE_BUF относится к destination capacity, а этот статус — к полноте source.
Последовательность изоляции
- декодируйте захваченные байты без участия transport layer
- добавьте только известный недостающий segment и повторите
- используйте намеренно обрезанное сообщение как negative control
Инструментирование
Записывайте полный 32-битный HRESULT и младший OSS return number вместе с направлением операции, символическим PDU, правилом кодирования, числом байтов и идентификатором generated table. Там, где объявленная длина frame и фактически полученные байты может раскрывать чувствительные данные, хеш с ограниченным структурным фрагментом безопаснее полного payload. Используйте offset decoder в момент исчерпания данных вместе с путями и версиями модулей OSS, записанными один раз на процесс, чтобы сопоставлять различия упаковки без засорения обычной диагностики.
При проверке сохраняйте исходные байты или object graph неизменными декодируйте захваченные байты без участия transport layer. Изменение offset decoder в момент исчерпания данных после reload, замены plugin, restart или развертывания schema является данными о состоянии runtime, а не основанием выбрасывать reproducer. Когда границы transport segmentation, base64 или чтения файла указывает на конкретное сообщение, сохраняйте криптографический хеш и минимальный безопасный образец вместо записи certificate, subscriber, credential или private-key material.
Матрица решений
| Контролируемое наблюдение | Подтверждаемый вывод |
|---|---|
| декодируйте захваченные байты без участия transport layer | Изменившийся результат локализует первый предлагаемый контроль вместо слепого повтора |
| объявленная длина frame и фактически полученные байты различаются между успешным и неуспешным случаем | Разница локализует границу преждевременного конца encoded input до изменения несвязанных настроек |
| Независимый decoder принимает тот же артефакт | Проверьте сгенерированную schema, выбранные rules, ABI и необязательные модули OSS, прежде чем объявлять байты недействительными |
| Новый control object изменяет результат | Исследуйте инициализацию, lifecycle, владение allocator, изменение конфигурации и concurrent access |
Проверка завершения
Сохраняйте framing между чтениями и вызывайте decoder только с длиной, обещанной окружающим protocol. Тест восстановления для декодируйте захваченные байты без участия transport layer должен повторять ту же операцию при той же schema и encoding rule, сохранять один намеренно недействительный control и проверять владение/очистку после обоих исходов. Успех после непроанализированного повтора не доказывает, что объявленная длина frame и фактически полученные байты теперь соответствует контракту codec.
Технические ссылки
- Microsoft: определения HRESULT OSS ASN.1
- OSS Nokalva: return codes encoder/decoder
- OSS Nokalva: runtime-функции и инициализация control
- Соответствующая спецификация ASN.1 или деталь runtime
Нужно найти другой код? Найти другой код состояния или ошибки.
