WinCE 流接口驱动中设备句柄的传输过程
来源:互联网 发布:淘宝店铺宝贝多访客少 编辑:程序博客网 时间:2024/05/17 09:06
驱动程序是通过设备句柄来控制设备的,应用程序要控制设备,也需要获得设备句柄,然后使用驱动程序体提供的DeviceIoControl接口来控制设备。那么应用程序是如何获得设备句柄的呢?
通常流接口驱动程序会使用两个结构体,驱动上下文结构体和设备上下文结构体。设备句柄会保存在设备上下文结构体中,驱动上下文结构体会保存设备上下文结构体的地址。这样通过驱动上下文结构体就能够得到设备句柄。下面我定义一个驱动上下文指针dwDriverContext来说明这个指针是如何被传递的。
1、 在执行USBDeviceAttach的函数中,函数ActivateDevice用来激活流接口,它将dwDriverContext的值写入注册表中。
2、 当dwDriverContext被写入注册表后,设备管理器会调用Cam_Init 函数。Cam_Init 函数执行后会从注册表取得dwDriverContext的值。
3、 应用程序使用CreatFile这个API时,驱动程序中的Cam_Open函数会被调用,Cam_Open执行时会获得Cam_Init 函数的到的dwDriverContext。CreatFile会得到Cam_Open返回的dwDriverContext。在应用程序中,dwDriverContext会以句柄的形式出现,这时应用程序就可以通过CreatFile返回的句柄来控制设备了。
4、 应用程序使用DeviceIoControl时会把CreatFile返回的句柄(其实就是dwDriverContext)传回给驱动程序的CAM_IOControl函数。
以上就是设备句柄在驱动程序与应用程序之间的传递过程。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/lovelynn/archive/2008/12/04/3446024.aspx
- WinCE 流接口驱动中设备句柄的传输过程
- WinCE 流接口驱动中设备句柄的传输过程
- WinCE 流接口驱动中设备句柄的传输过程
- WinCE 流接口驱动中设备句柄的传输过程
- WinCE 流接口驱动中设备句柄的传输过程
- WinCE 流接口驱动中设备句柄的传输过程
- WinCE 存储设备驱动加载_接口调用过程
- WinCE驱动中设备中断的处理
- Wince 流接口驱动
- WinCE流设备驱动简介及GPIO驱动的实现
- WinCE流设备驱动简介及GPIO驱动的实现
- WinCE流设备驱动简介及GPIO驱动的实现
- WinCE流设备驱动简介及GPIO驱动的实现
- WinCE流设备驱动简介及GPIO驱动的实现
- WinCE流设备驱动简介及GPIO驱动的实现
- WinCE流设备驱动简介及GPIO驱动的实现
- WinCE流设备驱动简介及GPIO驱动的实
- WinCE流设备驱动简介及GPIO驱动的实现
- 二维数组 指针
- 流接口的详细参数
- 第一章 .Net 控件开发(WebForm) 开发简单自定义控件(7) 控件事件的引发以及优化
- linux内存屏蔽技术
- MFC实现选择文件夹的对话框
- WinCE 流接口驱动中设备句柄的传输过程
- android 反编译及防止反编译
- 什么时候使用虚函数?
- 游戏大厅原理:将其它exe界面程序嵌入自己的程序界面中运行
- 数组内即能存int,又能存double,还能存string了
- ARMLINUX网卡驱动分析
- 批处理内部命令详讲
- 给孩子的备忘录——梁继璋给儿子的信
- C++ class friend