阅读:2148回复:9
一个很菜的问题:驱动中如何过滤固定盘符的写操作
刚开始学习驱动开发,我现在正做一个磁盘过滤驱动,我得到整个磁盘的写操作后怎么从里面找出来D盘的写操作呢?就是说把D盘的写操作挑出来,我现在不知道要得到D盘要用什么条件?
|
|
沙发#
发布于:2010-04-29 10:42
没人回答吗?各位,知道的帮个忙,我就想实现“在驱动中要捕获指定分区(D分区)的数据”, 但是我不知道怎么区分得到的数据是哪个盘的?
|
|
板凳#
发布于:2010-04-29 16:19
RtlVolumeDeviceToDosName
|
|
地板#
发布于:2010-04-29 16:55
回 2楼(crazy4stef) 的帖子
我在IRP_MJ_WRITE中用了,但是currentIrpStack->FileObject == NULL是怎么回事? |
|
地下室#
发布于:2010-04-29 17:39
回 2楼(crazy4stef) 的帖子
我在IRP_MJ_WRITE中是这样写的PFILE_OBJECT FileObject = currentIrpStack->FileObject; if (FileObject == NULL) // 多数为空,不判断的话会蓝屏 { goto Next; // 每次都走到这了。。。。。。。。 } //获取这个卷的dos名字 ntStatus = IoVolumeDeviceToDosName(FileObject->DeviceObject, &DosName); if (!NT_SUCCESS(ntStatus)) { // DbgPrint("获取卷名错误!\r\n"); } 每次FileObject == NULL是怎么回事啊? |
|
5楼#
发布于:2010-04-30 15:42
。。。
你不会只把你的设备绑在D盘上啊,全部绑定了再判断效率低也麻烦 |
|
6楼#
发布于:2010-04-30 15:45
对了,你看看这个把,应该对你有帮助
http://www.dbgger.com/?t=project |
|
7楼#
发布于:2010-05-04 00:04
回 5楼(crazy4stef) 的帖子
我实际上要实现禁止除系统盘外其它盘的写操作,但不知道咋判断它写入的地方是不是C盘,用IoVolumeDeviceToDosName不是蓝屏就是得不到值 |
|
8楼#
发布于:2010-05-11 10:35
回 6楼(crazy4stef) 的帖子
谢谢了啊! |
|
9楼#
发布于:2010-05-17 11:50
回 6楼(crazy4stef) 的帖子
哥们,很抱歉,我不知道怎么结贴,没法给分 |
|