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


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

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

FilterConnectCommunicationPort

FilterGetMessage

FilterReplyMessage

FltCreateCommunicationPort

FltSendMessage