CoolMoon
驱动牛犊
驱动牛犊
  • 注册日期2002-10-21
  • 最后登录2002-11-05
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1845回复:5

Win32 API CreateFile所对应的驱动程序动作IRP_MJ_CREATE到底要做些什么?

楼主#
更多 发布于:2002-11-04 09:21
当用户调用Win32 API CreateFile后,会返回一个文件句柄,该句柄代表的是一块内存结构。那么这块内存结构是怎样分配的?谁负责分配、管理?它怎样和用户要打开的设备关联起来的?驱动程序在处理IRP_MJ_CREATE时到底要做哪些动作?

我所有的分都拿出来了,倾家荡产了!所以拜托各位说清楚点!
()000o ( ) ) / (__/
zydcat
驱动老牛
驱动老牛
  • 注册日期2001-12-06
  • 最后登录2006-04-12
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-11-04 10:00
你说的这些都是由io管理器作的,你不用管这些,驱动中只需要的完成这个irp,返回给io管理器成功状态即可。当然你也可以加一些你需要的东西这这个例程里
[color=red]肥虫虫[/color] [img]http://www.driverdevelop.com/forum/upload/bradley/2002-11-15_ig01.gif[/img]
CoolMoon
驱动牛犊
驱动牛犊
  • 注册日期2002-10-21
  • 最后登录2002-11-05
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-11-04 10:51
你说的这些都是由io管理器作的,你不用管这些,驱动中只需要的完成这个irp,返回给io管理器成功状态即可。当然你也可以加一些你需要的东西这这个例程里


都可加入哪些东西啊?举些例子!
()000o ( ) ) / (__/
zydcat
驱动老牛
驱动老牛
  • 注册日期2001-12-06
  • 最后登录2006-04-12
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-11-04 11:00
比如说你要计数设备被打开的次数

就可以加个计数变量在这,每次打开自加,关闭自减。

 :D
[color=red]肥虫虫[/color] [img]http://www.driverdevelop.com/forum/upload/bradley/2002-11-15_ig01.gif[/img]
flyaji
驱动牛犊
驱动牛犊
  • 注册日期2002-10-29
  • 最后登录2003-01-24
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-11-04 11:54
我的理解是:
句柄应该是为了保护内核而设置的指针八.它是指向特定设备对象的.该设备对象在createfile通过其第一个参数(可能是符号连接名或者是guid)指定了.可以说,win32程序和内核都是通过设备对象访问驱动程序的设备的.设备对象是通过iocreatedevice初始化和分配内存的.(动作当然是os做的,呵呵)
bbear
驱动小牛
驱动小牛
  • 注册日期2002-08-20
  • 最后登录2009-04-16
  • 粉丝0
  • 关注0
  • 积分30分
  • 威望3点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2002-11-04 12:56
当用户调用Win32 API CreateFile后,会返回一个文件句柄,该句柄代表的是一块内存结构。那么这块内存结构是怎样分配的?谁负责分配、管理?它怎样和用户要打开的设备关联起来的?驱动程序在处理IRP_MJ_CREATE时到底要做哪些动作?

我所有的分都拿出来了,倾家荡产了!所以拜托各位说清楚点!


#它怎样和用户要打开的设备关联起来的?
它只建立 FILEHANDLE,
游客

返回顶部