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,则调用方必须将 OVERLAPPED 结构的 hEvent 成员初始化为有效的事件句柄或 NULL

返回值

如果成功,FilterGetMessage 将返回S_OK。 否则,它将返回错误值。

备注

FilterGetMessage 函数设计用于同步和异步 (重叠) 操作。

lpOverlappedNULL 且有消息可用时, FilterGetMessage 将立即返回。 否则,调用方将进入等待状态,直到收到消息。

如果 lpOverlapped 不为 NULL则 FilterGetMessage 返回ERROR_IO_PENDING。 在这种情况下,在 FilterGetMessage 返回之前,lpOverlapped 结构中的事件对象设置为非对齐状态。 传递消息时,此事件将设置为已发出信号的状态。

从微筛选器收到消息后,调用方可以通过调用 FilterReplyMessage 发送答复。

微筛选器或实例通过调用 FltSendMessage 将消息发送到用户模式应用程序。

要求

   
目标平台 通用
标头 fltuser.h (包括 Fltuser.h)
Library FltLib.lib
DLL FltLib.dll

请参阅

CreateEvent

FILTER_MESSAGE_HEADER

FilterConnectCommunicationPort

FilterReplyMessage

FilterSendMessage

FltSendMessage

GetOverlappedResult

HasOverlappedIoCompleted