Функция 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 |