Что означает код NTSTATUS 0xC0000705 (STATUS_LPC_RECEIVE_BUFFER_EXPECTED)?

 
Предыдущий Следующий
STATUS_RECURSIVE_DISPATCH STATUS_LPC_INVALID_CONNECTION_USAGE

STATUS_LPC_RECEIVE_BUFFER_EXPECTED

description[Синхронный запрос LPC не предоставил буфер ответа.]

Синхронному запросу некуда записать ответ

Операции request-and-wait объединяют отправку сообщения с получением соответствующего ответа. Если выбранный нативный вызов требует буфер ответа, его отсутствие нарушает синхронный контракт, даже если исходящий запрос допустим. Когда ответ не ожидается, следует использовать API односторонних датаграмм.

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

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

  • Определите, является ли протокольная операция датаграммой, обменом запрос-ответ или установлением соединения.
  • Выделите буфер ответа в соответствии с максимальной длиной сообщения, согласованной для порта.
  • Инициализируйте возвращаемую длину и хранилище атрибутов, требуемые конкретным нативным API.
  • Сохраняйте буфер приёма до возврата нативного ожидания и обработки всех атрибутов ответа.

Ссылки


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