应用程序与驱动通信与弹窗

驱动程序是为设备的硬件层编程服务的,需要提供和应用程序进行通信的能力,达到应用程序控制设备的目的。

驱动程序和客户应用程序经常需要进行数据交换,驱动程序和客户应用程序不在同一个地址空间,操作系统必须解决两者之间的数据交换。


一、应用程序实现与WDM通信的过程:

1、应用程序用CreateFile函数打开设备

2、应用程序用DeviceIoControl和WDM进行通信,包括从WDM读数据 和写数据给WDM两种情况,或者ReadFile从WDM中读数据或用WriteFile写数据给WDM,这三个函数都属于Win32 API

3、当应用程序退出时,用CloseHandle关闭设备


代码参考:http://www.vckbase.com/index.php/wv/1003


二、驱动程序与应用程序的通信:

当驱动程序捕捉到特点事件(如中断)发生时,应当可以与应用程序进行通信。


三、DeviceIoControl与驱动交互:

DeviceIoControl内部会使操作系统创建一个IRP_MJ_DEVICE_CONTROL类型的IRP,操作系统会将这个IRP转发到派遣函数中,程序员可以用DeviceIoControl定义除读写之外的其他操作,让应用程序和驱动程序进行通讯。

BOOL DeviceIoControl (HANDLE hDevice, //已经打开的设备的句柄 
DWORD dwIoControlCode, //I/O控制码(IOCTL值) 
LPVOID lpInBuffer, // 输入缓冲区地址 
DWORD nInBufferSize, // 输入缓冲区大小 
LPVOID lpOutBuffer, // 输出缓冲区地址 
DWORD nOutBufferSize, // 输出缓冲区大小 
LPDWORD lpBytesReturned, // 存放返回字节数的指针 ,对应派遣函数中的IRP结构中的pIrp->IoStatus.Iniformation
LPOVERLAPPED lpOverlapped // 用于同步操作的Overlapped结构体指针 
);

//宏:
CTL_CODE(DeviceType,//与IoCreateDevice创建的设备对象类型相匹配
Function,//驱动程序定义的IOCTL码
Method,//操作模式
Access)//访问权限


参考代码:http://blog.csdn.net/shanndyw/article/details/5353460




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
YOLO高分设计资源源码,详情请查看资源内容使用说明 YOLO高分设计资源源码,详情请查看资源内容使用说明 YOLO高分设计资源源码,详情请查看资源内容使用说明 YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值