Функция FilterSendMessage (fltuser.h)
Функция FilterSendMessage отправляет сообщение в минифильтр режима ядра.
Синтаксис
HRESULT FilterSendMessage(
[in] HANDLE hPort,
[in, optional] LPVOID lpInBuffer,
[in] DWORD dwInBufferSize,
[out] LPVOID lpOutBuffer,
[in] DWORD dwOutBufferSize,
[out] LPDWORD lpBytesReturned
);
Параметры
[in] hPort
Дескриптор порта связи, возвращенный предыдущим вызовом FilterConnectCommunicationPort. Этот параметр является обязательным и не может иметь значение NULL.
[in, optional] lpInBuffer
Указатель на буфер, выделенный вызывающим объектом, содержащий сообщение для отправки в минифильтр. Формат сообщения определяется вызывающим. Этот параметр является обязательным и не может иметь значение NULL.
[in] dwInBufferSize
Размер (в байтах) буфера, на который указывает lpInBuffer.
[out] lpOutBuffer
Указатель на буфер, выделенный вызывающим объектом, который получает ответ (при наличии) от минифильтра.
[in] dwOutBufferSize
Размер (в байтах) буфера, на который указывает lpOutBuffer. Это значение игнорируется, если lpOutBuffer имеет значение NULL.
[out] lpBytesReturned
Указатель на переменную, выделенную вызывающим объектом, которая получает количество байтов, возвращаемых в буфере, на которое указывает lpOutBuffer при успешном вызове FilterSendMessage . Этот параметр является обязательным и не может иметь значение NULL.
Возвращаемое значение
FilterSendMessage возвращает S_OK в случае успешного выполнения. В противном случае возвращается значение ошибки.
Комментарии
Функция FilterSendMessage отправляет сообщение в мини-фильтр. Сообщение передается в подпрограмму обратного вызова уведомления о сообщениях минифильтра, который обрабатывает сообщение. (Минифильтр регистрирует свою подпрограмму уведомления обратного вызова сообщения, передавая ее в качестве параметра MessageNotifyCallbackв FltCreateCommunicationPort.)
FilterSendMessage является синхронным. Вызывающий объект переводится в состояние ожидания, пока сообщение не будет доставлено, а ответ минифильтра (если таковой имеется) не будет получен.
Если вызывающий объект ожидает ответ, он должен передать буфер, отличный от NULL , для параметра lpOutBuffer и положительное значение для параметра dwOutBufferSize .
Чтобы получить сообщение из минифильтра, вызовите FilterGetMessage.
Чтобы ответить на сообщение из минифильтра, вызовите FilterReplyMessage.
Минифильтр отправляет сообщение в приложение в пользовательском режиме, вызывая FltSendMessage.
Требования
Целевая платформа | Универсальное |
Верхняя часть | fltuser.h (включая Fltuser.h) |
Библиотека | FltLib.lib |
DLL | FltLib.dll |