CE中驱动和上层App的交互经常出现,最常用的方式是IOCTL,通过IOCTL的方式,上层App可以随时让驱动来做一些事情,然后将结果返回给App(当然也可以选择无返回参数),这个方式需要驱动导出XXX_IOContrl()函数,同时在该函数中需要修改或者添加所需的case来完成App指定的动作。当然,这个方式的发起者是App,底层驱动只是被动的接收并执行命令;那如果底层驱动是命令的发起者,该如何让App接收并执行命令呢?
这个时候就需要驱动发送消息给App,通知它去执行指定的命令了。
发送消息的方式有很多种,这里我只介绍我使用过的一个API,
BOOL SendNotifyMessage( HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam );
具体使用方式如下:
1.需要在驱动和App的头文件中定义如下相同的内容:

本文介绍了在Windows CE系统中,当驱动需要主动发送消息通知上层App执行特定操作时,如何使用SendNotifyMessage API。通过定义自定义消息类型,注册窗口消息,并在驱动中调用API发送消息,App可以通过循环检测机制接收到驱动的通知,执行相应命令。同时,文章提到了在系统启动时驱动发送消息可能导致的加载异常问题,提醒开发者注意规避。
最低0.47元/天 解锁文章
1487

被折叠的 条评论
为什么被折叠?



