阅读:1938回复:10
请问大家如何准确读取磁盘指定扇区数据内容而不被过滤驱动改变?
是不是需要直接磁盘驱动,该如何着手?请各位大侠给偶指个方向,有指导性的代码就更好了。
小弟愿以50分感谢大家! |
|
|
沙发#
发布于:2007-03-22 08:36
你说的过滤驱动是指哪些?如果file filter,那你不用担心,即使是在app中读hdd,也不会被file filter driver截获。如果是说disk.sys下面的filter,那你就直接去和对应bus的fdo通讯。如果再担心,就直接PIO/register/DMA好了,只要你知道各个芯片的命令
|
|
|
板凳#
发布于:2007-03-22 09:22
rayyang2000老大,谢谢你的指点。你说的“在app中读hdd,也不会被file filter driver截获”,难道是app直接通过disk.sys发IRP吗?偶比较菜,所以不是很清楚
另外,怎么送分啊?偶不大会操作。想送分感谢老大:) |
|
|
地板#
发布于:2007-03-22 09:41
在应用层直接用ReadFile和WriteFile就可以对指定扇区的内容进行读写,只不过CreateFile时的第一个参数要用\\.\X:,X表示磁盘驱动器号(C,D,E等等)
|
|
|
地下室#
发布于:2007-03-22 09:49
引用第3楼shenhui于2007-03-22 09:41发表的“”: 恩,兄弟说的这种方式偶知道,不过我就是害怕文件过滤驱动拦截了其中部分内容,读出来的数据就不准确了。除非这种方式发送的IRP包不经过文件系统,直接传递给了disk.sys? |
|
|
5楼#
发布于:2007-03-22 11:24
记得好像是一个IoBuild。。。。Irp().上次反汇编别人的一个驱动,里面有的。
|
|
|
6楼#
发布于:2007-03-22 12:53
Recommend: DDK\src\storage\tools\spti
|
|
|
7楼#
发布于:2007-03-22 13:41
OK,我先去看看!谢谢大家!
|
|
|
8楼#
发布于:2007-03-22 16:57
rayyang2000老大,那个例子是不是只能对scsi磁盘有效?对IDE的也可以吗?
|
|
|
9楼#
发布于:2007-03-23 09:17
引用第8楼bizhan123于2007-03-22 18:57发表的“”: scsi/ide/usb/1394.... |
|
|
10楼#
发布于:2007-03-23 13:50
那我就放心了,THANK YOU VERY MUCH!
|
|
|