zhangjinsuo
驱动牛犊
驱动牛犊
  • 注册日期2002-10-08
  • 最后登录2005-04-28
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:6548回复:41

如何按扇区读取DVD数据?在线等待

楼主#
更多 发布于:2002-12-02 12:52
我正在做IFS的驱动,是用来读加了密的DVD盘的。我要在FastIORead里边对从DVD中读出来的Sector进行解密处理,但是我不知道怎么读取DVD的一个扇区的数据。万望指点迷津!

最新喜欢:

LeopardLeopar...
zhangjinsuo
驱动牛犊
驱动牛犊
  • 注册日期2002-10-08
  • 最后登录2005-04-28
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-12-02 16:38
不知道用IoBuildDeviceIoControlRequest行不行啊!?
Coolice
驱动小牛
驱动小牛
  • 注册日期2002-11-13
  • 最后登录2003-08-22
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-12-02 18:05
你把Filter直接挂在DVD的Driver上不是更简单吗?
yymrhxf
驱动牛犊
驱动牛犊
  • 注册日期2002-08-07
  • 最后登录2011-10-25
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望4点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-12-02 19:36
cdfs里面不是有源代码吗?它也可以读dvd盘. IoBuildDeviceIoControlRequest当然可以。
zhangjinsuo
驱动牛犊
驱动牛犊
  • 注册日期2002-10-08
  • 最后登录2005-04-28
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-12-03 08:15
我想IoBuildDeviceIoControlRequest可能会简单一些,因为我还要监测文件的操作,用IoBuildDeviceIoControlRequest只要创建一下设备再调这个就行了,不过我试了试老是没有读盘,不知道能不能提供一段代码让我看看我的Code在哪里出了问题,我想应该只有几行的事情吧。主要可能是SCSI命令的地方出了问题啊!DVD和CDROM是不一样的。
yymrhxf
驱动牛犊
驱动牛犊
  • 注册日期2002-08-07
  • 最后登录2011-10-25
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望4点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
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...............
zhangjinsuo
驱动牛犊
驱动牛犊
  • 注册日期2002-10-08
  • 最后登录2005-04-28
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2002-12-03 09:30
我的程序和这个差不多啊!那前面IoBuildDeviceIoControlRequest中的PDEVICE_OBJECT的设备怎么创建的?是不是我那里出了问题,DVD应该怎么用IoCreateDevice呢?
liuyan1
驱动老牛
驱动老牛
  • 注册日期2001-08-27
  • 最后登录2023-04-18
  • 粉丝0
  • 关注0
  • 积分1031分
  • 威望477点
  • 贡献值0点
  • 好评度187点
  • 原创分0分
  • 专家分0分
  • 社区居民
7楼#
发布于:2002-12-03 11:41
读扇区很难搞的,要通过文件系统读扇区必须要经过UDF文件系统驱动,我想是这样把!这些东西没公开的。DVD
楼上的客,楼下的客,听我老坎说明白,要苛屎有草纸,不要扯我的麦席子,要苛尿有夜壶,不要在床上划地图。
yymrhxf
驱动牛犊
驱动牛犊
  • 注册日期2002-08-07
  • 最后登录2011-10-25
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望4点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2002-12-03 11:44
vcb或者volume object里有你需要的device object.
Coolice
驱动小牛
驱动小牛
  • 注册日期2002-11-13
  • 最后登录2003-08-22
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2002-12-03 12:21
试试vpb->RealDevice
zhangjinsuo
驱动牛犊
驱动牛犊
  • 注册日期2002-10-08
  • 最后登录2005-04-28
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2002-12-03 12:33
各位大哥能不能解释的具体一点比如如何用IoCreateDevice创建DVD设备,如何得到vcb或者volume object或者给一个例子(除了cdfs)因为那是CDROM的。谢谢!
Coolice
驱动小牛
驱动小牛
  • 注册日期2002-11-13
  • 最后登录2003-08-22
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2002-12-03 12:37
FileObject->Vpb->RealDevice 就是FSD的DeviceObject,试试看
Coolice
驱动小牛
驱动小牛
  • 注册日期2002-11-13
  • 最后登录2003-08-22
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2002-12-03 12:39
也可以通过IoGetDeviceObjectPointer获得
zhangjinsuo
驱动牛犊
驱动牛犊
  • 注册日期2002-10-08
  • 最后登录2005-04-28
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2002-12-03 12:39
读扇区很难搞的,要通过文件系统读扇区必须要经过UDF文件系统驱动,我想是这样把!这些东西没公开的。DVD


我只是要读取DVD每个扇区的数据,UDF应该指的是在ISO9660基础上面的一个文件格式而已。这也正是我要读取扇区数据的原因,因为我们的DVD盘并不是采用的标准ISO9660的格式,而是加了密的。所以只能用自己的Driver才可以读啊!至少我是这样认为的。
zhangjinsuo
驱动牛犊
驱动牛犊
  • 注册日期2002-10-08
  • 最后登录2005-04-28
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2002-12-03 12:43
也可以通过IoGetDeviceObjectPointer获得

那IoGetDeviceObjectPointer的第一个参数ObjectName对于DVD-ROM应该写什么呢?(比如CD-ROM可以写L\"\\\\Device\\\\RawCdRom\")
Coolice
驱动小牛
驱动小牛
  • 注册日期2002-11-13
  • 最后登录2003-08-22
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
15楼#
发布于:2002-12-03 13:15
用Numega Symbolic Links Viewer看看就知道了
zhangjinsuo
驱动牛犊
驱动牛犊
  • 注册日期2002-10-08
  • 最后登录2005-04-28
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
16楼#
发布于:2002-12-03 13:21
天哪!我没这玩艺儿。By the way我怎么样给你们加分呢?他老显示我没有登陆论坛。可是我明明已经登录过了。
Coolice
驱动小牛
驱动小牛
  • 注册日期2002-11-13
  • 最后登录2003-08-22
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
17楼#
发布于:2002-12-03 13:36
是NuMega DriverStudio里的工具啊,做驱动怎么能没有:)

调用IoGetDeviceObjectPointer,DesiredAccess参数非常关键,如果是FILE_READ_DATA会自动Mount(DVD可能会有动作),用FILE_READ_ATTRIBUTES,则在没有Mount的时候,会导致以后的读操作失败。所以要根据需要使用。
zhangjinsuo
驱动牛犊
驱动牛犊
  • 注册日期2002-10-08
  • 最后登录2005-04-28
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
18楼#
发布于:2002-12-03 13:43
是啊!是啊!我刚刚做Driver,以前装了DS2.5但是现在这个版本的IFSKIT不能有以前的DDK所以我就把DDK给卸载了,所以DS基本上也用不了了所以也给卸了,所以。。。。。。只好到Notebook上找了一个Symlinks.exe。你是在北京么?很高兴认识你。
Coolice
驱动小牛
驱动小牛
  • 注册日期2002-11-13
  • 最后登录2003-08-22
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
19楼#
发布于:2002-12-03 13:50
呵呵,也很高兴认识你,我来这个论坛没多久:)

BTW,IFSKIT/DDK/DS2.5可以同时装的,我没出现过问题啊。
上一页
游客

返回顶部