Поделиться через


Функция FilterGetMessage (fltuser.h)

Функция FilterGetMessage получает сообщение из мини-фильтра режима ядра.

Синтаксис

HRESULT FilterGetMessage(
  [in]      HANDLE                 hPort,
  [out]     PFILTER_MESSAGE_HEADER lpMessageBuffer,
  [in]      DWORD                  dwMessageBufferSize,
  [in, out] LPOVERLAPPED           lpOverlapped
);

Параметры

[in] hPort

Дескриптор порта связи, возвращенный предыдущим вызовом FilterConnectCommunicationPort. Этот параметр является обязательным и не может иметь значение NULL.

[out] lpMessageBuffer

Указатель на буфер, выделенный вызывающим объектом, который получает сообщение от мини-фильтра. Сообщение должно содержать FILTER_MESSAGE_HEADER структуру, но в противном случае его формат определяется вызывающим. Этот параметр является обязательным и не может иметь значение NULL.

[in] dwMessageBufferSize

Размер (в байтах) буфера, на который указывает параметр lpMessageBuffer .

[in, out] lpOverlapped

Указатель на структуру OVERLAPPED. Этот параметр является необязательным и может иметь значение NULL. Если значение не равно NULL, вызывающий объект должен инициализировать элемент hEvent структуры OVERLAPPED допустимым дескриптором события или значением NULL.

Возвращаемое значение

FilterGetMessage возвращает S_OK в случае успешного выполнения. В противном случае возвращается значение ошибки.

Комментарии

Функция FilterGetMessage предназначена для синхронных и асинхронных (перекрывающихся) операций.

Если lpOverlapped имеет значение NULL и сообщение доступно, FilterGetMessage возвращается немедленно. В противном случае вызывающий объект переводится в состояние ожидания до получения сообщения.

Если значение lpOverlapped не равно NULL, функция FilterGetMessage возвращает ERROR_IO_PENDING. В этом случае объект события в структуре lpOverlapped устанавливается в состояние без знака перед возвратом FilterGetMessage . При доставке сообщения этому событию присваивается состояние сигналов.

Получив сообщение от мини-фильтра, вызывающий может отправить ответ, вызвав FilterReplyMessage.

Минифильтр или экземпляр отправляет сообщение в приложение пользовательского режима, вызывая FltSendMessage.

Требования

   
Целевая платформа Универсальное
Верхняя часть fltuser.h (включая Fltuser.h)
Библиотека FltLib.lib
DLL FltLib.dll

См. также раздел

CreateEvent

FILTER_MESSAGE_HEADER

FilterConnectCommunicationPort

FilterReplyMessage

FilterSendMessage

FltSendMessage

GetOverlappedResult

HasOverlappedIoCompleted