Что означает код NTSTATUS 0x40000011 (STATUS_RECEIVE_PARTIAL_EXPEDITED)?

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

STATUS_RECEIVE_PARTIAL_EXPEDITED

Доставлена только часть срочного транспортного сообщения

Этот статус объединяет два независимых условия контракта приёма TDI: данные помечены как срочные, и текущая индикация не содержит всех байтов, доступных для данной единицы данных транспортной службы. Поэтому клиент должен сохранить и специальную семантику приёма, и незавершённую длину.

Если принять первый фрагмент за полное срочное сообщение, протокол может рассинхронизироваться. Если считать его обычными потоковыми данными, можно потерять признак срочности. Правильное действие — использовать указанные количества байтов и флаги приёма, копировать только объём, который обработчик может принять, и продолжить приём в том же контексте соединения.

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

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

Ссылки


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