| Предыдущий | Следующий |
| STATUS_RECURSIVE_DISPATCH | STATUS_LPC_INVALID_CONNECTION_USAGE |
STATUS_LPC_RECEIVE_BUFFER_EXPECTED
description[Синхронный запрос LPC не предоставил буфер ответа.]Синхронному запросу некуда записать ответ
Операции request-and-wait объединяют отправку сообщения с получением соответствующего ответа. Если выбранный нативный вызов требует буфер ответа, его отсутствие нарушает синхронный контракт, даже если исходящий запрос допустим. Когда ответ не ожидается, следует использовать API односторонних датаграмм.
Буфер приёма также должен быть достаточно велик для максимального ответа и его атрибутов. Ненулевой указатель на объект размером только с заголовок не равнозначен допустимому буферу ответа, особенно если с сообщением могут передаваться атрибуты дескриптора, безопасности, представления или контекста.
Что проверить
- Определите, является ли протокольная операция датаграммой, обменом запрос-ответ или установлением соединения.
- Выделите буфер ответа в соответствии с максимальной длиной сообщения, согласованной для порта.
- Инициализируйте возвращаемую длину и хранилище атрибутов, требуемые конкретным нативным API.
- Сохраняйте буфер приёма до возврата нативного ожидания и обработки всех атрибутов ответа.
Ссылки
- Открытые спецификации Microsoft: значения NTSTATUS
- System Informer PHNT: определения нативного LPC
- Исходный код ReactOS: реализация LPC
Нужно найти другой код? Найти другой код состояния или ошибки.