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 函数设计用于同步和异步 (重叠) 操作。
当 lpOverlapped 为 NULL 且有消息可用时, FilterGetMessage 将立即返回。 否则,调用方将进入等待状态,直到收到消息。
如果 lpOverlapped 不为 NULL, 则 FilterGetMessage 返回ERROR_IO_PENDING。 在这种情况下,在 FilterGetMessage 返回之前,lpOverlapped 结构中的事件对象设置为非对齐状态。 传递消息时,此事件将设置为已发出信号的状态。
从微筛选器收到消息后,调用方可以通过调用 FilterReplyMessage 发送答复。
微筛选器或实例通过调用 FltSendMessage 将消息发送到用户模式应用程序。
要求
目标平台 | 通用 |
标头 | fltuser.h (包括 Fltuser.h) |
Library | FltLib.lib |
DLL | FltLib.dll |