首页
社区
课程
招聘
[讨论]关于文件系统IRP_MJ_CREATE
发表于: 2015-3-19 21:25 4108

[讨论]关于文件系统IRP_MJ_CREATE

2015-3-19 21:25
4108
当我们调用createfile的时候,IO管理器会产生一个IRP_MJ_CREATE发送给文件系统。那么问题来了:
假设有2个磁盘,c:,d:,对应的ftdisk的设备对象是\device\harddiskvolume1和\device\harddiskvolume2, volume1->对应ntfs的设备对象假设地址是0xfffe8100,
volume2->对应0xfffe8200,ntfs还有一个CDO控制设备对象,假设是0xfffe8000,
假设文件名是,c:\a.txt,那么这个IRP_MJ_CREATE是发送到CDO还是volume1对应的0xfffe8100呢?如果发送到CDO,可以认为IO管理器不会解析文件名,不管文件名是c:\a.txt,还是d:\a.txt,一律发送到CDO了事,如果发送到volume1的0xfffe8100,那么IO管理其还先要从文件名中
提取出c:\判断是volume1还是volume2再决定发送到那个ntfs的设备对象呀。
那么答案到底是发送到CDO还是发送到volume1呢?

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 1042
活跃值: (470)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
TDI都看的云里雾里
2015-3-20 04:29
0
雪    币: 46
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
答案是Volume1,至于原理还是看看windows I/O系统的内容吧。另外,想要CDO收到IRP_MJ_CREATE,那需要通过CDO设备名称进行打开操作。
2015-3-20 11:04
0
游客
登录 | 注册 方可回帖
返回
//