Что означает код NTSTATUS 0x4000000F (STATUS_RECEIVE_PARTIAL)?

 
Предыдущий Следующий
STATUS_IMAGE_MACHINE_TYPE_MISMATCH STATUS_RECEIVE_EXPEDITED

STATUS_RECEIVE_PARTIAL

Транспортная индикация приёма содержит только часть сообщения

Этот информационный результат поступает из устаревшей модели приёма Transport Driver Interface. Транспорт передал часть байтов транспортного блока данных, а дополнительные байты остаются доступными или поступят позднее. Это не признак конца потока и не означает потерю отсутствующих байтов.

Клиент TDI должен был учитывать количество указанных и доступных байтов, принимать только фактически обработанные байты и при необходимости организовывать следующий приём. Современный код должен применять такую же дисциплину формирования кадров через поддерживаемые API сокетов или WSK: TCP является потоком байтов, поэтому один вызов приёма не обязан соответствовать одному сообщению приложения.

Что следует проверить

  • Запишите число указанных, доступных и принятых байтов, а также флаги приёма.
  • Сохраняйте состояние соединения до получения оставшейся полезной нагрузки или фактического разрыва.
  • Не разбирайте полный кадр приложения, пока не получена вся объявленная длина.

Ссылки


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