minifilter 向应用层发送信息fltSendMessage

应用层向minifilter发送没什么问题

minifilter向上发送的时候需要注意:

驱动层发送和接受时候的buf不包含header

应用层接收的时候需要添加header

结构体:

// 通信的内容

ypedef struct _MY_STRUCTURE
{
        WCHAR data[10];
}MY_STRUCTURE;

// 应用层获取数据的结构体
typedef struct _GET_STRUCT
{
        FILTER_MESSAGE_HEADER messageHeader;
        MY_STRUCTURE Data;
}GET_STRUCT, *PGET_STRUCT;

// 应用层发送数据的结构体
typedef struct _REPLY_STRUCT
{
        FILTER_REPLY_HEADER Header;
        MY_STRUCTURE Data;  // The structure to be sent to the minifilter.
} REPLY_STRUCT, *PREPLY_STRUCT;

驱动:

// 发送数据直接发送内容

MY_STRUCTURE sendBuf = { 0 };
MY_STRUCTURE replyBuf = { 0 };

status = FltSendMessage(FltObjects->Filter, &gfltClientPort, &sendBuf,
sizeof(MY_STRUCTURE), &replyBuf, &replayLen, NULL);

应用层:

// 需要加一个 Header

GET_STRUCT getStruct;
REPLY_STRUCT replyStruct;

result = FilterGetMessage(g_hPort, (PFILTER_MESSAGE_HEADER)&getStruct, sizeof(GET_STRUCT), NULL);

if (result == S_OK)
{
        result = FilterReplyMessage(g_hPort, (PFILTER_REPLY_HEADER)&replyStruct, 
        sizeof(FILTER_REPLY_HEADER) + sizeof(MY_STRUCTURE));
}

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值