阅读:6550回复:41
如何按扇区读取DVD数据?在线等待
我正在做IFS的驱动,是用来读加了密的DVD盘的。我要在FastIORead里边对从DVD中读出来的Sector进行解密处理,但是我不知道怎么读取DVD的一个扇区的数据。万望指点迷津!
|
|
最新喜欢:Leopar... |
沙发#
发布于:2002-12-02 16:38
不知道用IoBuildDeviceIoControlRequest行不行啊!?
|
|
板凳#
发布于:2002-12-02 18:05
你把Filter直接挂在DVD的Driver上不是更简单吗?
|
|
地板#
发布于:2002-12-02 19:36
cdfs里面不是有源代码吗?它也可以读dvd盘. IoBuildDeviceIoControlRequest当然可以。
|
|
地下室#
发布于:2002-12-03 08:15
我想IoBuildDeviceIoControlRequest可能会简单一些,因为我还要监测文件的操作,用IoBuildDeviceIoControlRequest只要创建一下设备再调这个就行了,不过我试了试老是没有读盘,不知道能不能提供一段代码让我看看我的Code在哪里出了问题,我想应该只有几行的事情吧。主要可能是SCSI命令的地方出了问题啊!DVD和CDROM是不一样的。
|
|
5楼#
发布于:2002-12-03 09:06
SCSI_PASS_THROUGH_DIRECT srb;
PCDB cdb=(PCDB)srb.Cdb; SetupCDB( cdb ); SetupSRB( srb ); nextIrp= IoBuildDeviceIoControlRequest( IOCTL_SCSI_PASS_THROUGH_DIRECT, IrpContext->Vcb->TargetDeviceObject, &srb, sizeof(SCSI_PASS_THROUGH_DIRECT),//_DIRECT &srb, sizeof(SCSI_PASS_THROUGH_DIRECT), FALSE,&event, &ioStatus); IoCallDriver............... |
|
6楼#
发布于:2002-12-03 09:30
我的程序和这个差不多啊!那前面IoBuildDeviceIoControlRequest中的PDEVICE_OBJECT的设备怎么创建的?是不是我那里出了问题,DVD应该怎么用IoCreateDevice呢?
|
|
7楼#
发布于:2002-12-03 11:41
读扇区很难搞的,要通过文件系统读扇区必须要经过UDF文件系统驱动,我想是这样把!这些东西没公开的。DVD
|
|
|
8楼#
发布于:2002-12-03 11:44
vcb或者volume object里有你需要的device object.
|
|
9楼#
发布于:2002-12-03 12:21
试试vpb->RealDevice
|
|
10楼#
发布于:2002-12-03 12:33
各位大哥能不能解释的具体一点比如如何用IoCreateDevice创建DVD设备,如何得到vcb或者volume object或者给一个例子(除了cdfs)因为那是CDROM的。谢谢!
|
|
11楼#
发布于:2002-12-03 12:37
FileObject->Vpb->RealDevice 就是FSD的DeviceObject,试试看
|
|
12楼#
发布于:2002-12-03 12:39
也可以通过IoGetDeviceObjectPointer获得
|
|
13楼#
发布于:2002-12-03 12:39
读扇区很难搞的,要通过文件系统读扇区必须要经过UDF文件系统驱动,我想是这样把!这些东西没公开的。DVD 我只是要读取DVD每个扇区的数据,UDF应该指的是在ISO9660基础上面的一个文件格式而已。这也正是我要读取扇区数据的原因,因为我们的DVD盘并不是采用的标准ISO9660的格式,而是加了密的。所以只能用自己的Driver才可以读啊!至少我是这样认为的。 |
|
14楼#
发布于:2002-12-03 12:43
也可以通过IoGetDeviceObjectPointer获得 那IoGetDeviceObjectPointer的第一个参数ObjectName对于DVD-ROM应该写什么呢?(比如CD-ROM可以写L\"\\\\Device\\\\RawCdRom\") |
|
15楼#
发布于:2002-12-03 13:15
用Numega Symbolic Links Viewer看看就知道了
|
|
16楼#
发布于:2002-12-03 13:21
天哪!我没这玩艺儿。By the way我怎么样给你们加分呢?他老显示我没有登陆论坛。可是我明明已经登录过了。
|
|
17楼#
发布于:2002-12-03 13:36
是NuMega DriverStudio里的工具啊,做驱动怎么能没有:)
调用IoGetDeviceObjectPointer,DesiredAccess参数非常关键,如果是FILE_READ_DATA会自动Mount(DVD可能会有动作),用FILE_READ_ATTRIBUTES,则在没有Mount的时候,会导致以后的读操作失败。所以要根据需要使用。 |
|
18楼#
发布于:2002-12-03 13:43
是啊!是啊!我刚刚做Driver,以前装了DS2.5但是现在这个版本的IFSKIT不能有以前的DDK所以我就把DDK给卸载了,所以DS基本上也用不了了所以也给卸了,所以。。。。。。只好到Notebook上找了一个Symlinks.exe。你是在北京么?很高兴认识你。
|
|
19楼#
发布于:2002-12-03 13:50
呵呵,也很高兴认识你,我来这个论坛没多久:)
BTW,IFSKIT/DDK/DS2.5可以同时装的,我没出现过问题啊。 |
|
上一页
下一页