Windows应用程序中使用的设备文件和设备驱动之间是怎么关联起来的?

ylssww 2006-10-25 04:27:56
在应用程序中,数据的流:ioctl(handle, ...)->设备文件->设备驱动->设备硬件,是不是这样的?
问:如何通过handle代表的设备文件是通过什么和相应的设备驱动联系起来的?
...全文
471 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
ThenLong 2007-01-31
  • 打赏
  • 举报
回复
为了安全 OS必须隐藏一些Handle和Object对应关系的细节
hanyufeng 2007-01-25
  • 打赏
  • 举报
回复
mark........
ghyd 2006-11-22
  • 打赏
  • 举报
回复
楼上各位说的大致正确。 但是需要纠正的是: createfile函数里使用的仅仅是符号连接。不是设备名。在驱动里,有一个函数,可以把设备名和要提供给应用层的符号连接名连接起来。
createfile返回一个句柄。用来标识对本设备的操作。其后的操作,都需要使用该句柄。
pilixuanke 2006-11-20
  • 打赏
  • 举报
回复
这是操作系统的内部实现问题,总之通过这个handle就能访问到你的硬件,所以说在系统内部会有一些数据结构来维护这些句柄表的。具体怎样就得去问MS了
silent_tiger 2006-11-03
  • 打赏
  • 举报
回复
楼上的正解,不过有一个地方有异议,CreateFile函数里指定的就是一个OBJECT NAME,这个OBJECT可以是一个DEVICE,也可以是一个DRIVER,他们都由系统OBJManager来管理,实际上楼上所指出的symbol link正是用来访问这些OBJECT的一个链表。具体的概念细节推荐CODEPROJECT上的一篇驱动入门文章,如果有需要可以留下邮箱。
Cody2k3 2006-10-31
  • 打赏
  • 举报
回复
handle是通过createfile形成的, createfile里面要指定device object或者其symbol link. 之后的ioctrl通过这个handle 联系到device object, device object有与其联系的driver object, 最终driver object中指定的dispatch function被调用, 操作硬件.
ljkong 2006-10-30
  • 打赏
  • 举报
回复
handle代表的设备文件是通过什么和相应的设备驱动联系起来的?
这个MS并没有公布细节,所以不用追根究底了

21,595

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
  • 驱动开发/核心开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧