free_song_2046
驱动牛犊
驱动牛犊
  • 注册日期2006-03-19
  • 最后登录2009-03-20
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望6点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
阅读:2051回复:7

USB存储设备的只读

楼主#
更多 发布于:2007-01-08 10:29
  我写了一个USB过滤驱动程序,想让USB存储设备只读但出现了问题。

从网上找到了一些代码就修改了一下。
我在IRP_MJ_SCSI命令处理函数上,写了下面的代码。

UCHAR  uchOperationCode;
PSCSI_REQUEST_BLOCK  pCurSrb;
PCDB  pCdb;

PIO_STACK_LOCATION  pIrpStack;
pIrpStack = IoGetCurrentIrpStackLocation( pIrp );

pCurSrb = pIrpStack->Parameters.Scsi.Srb;
pCdb = (PCDB)pCurSrb->Cdb;
uchOperationCode = pCdb->CDB6GENERIC.OperationCode;
 
if (  uchOperationCode == SCSIOP_MODE_SENSE
       &&  pCurSrb->DataBuffer
       &&  pCurSrb->DataTransferLength >= sizeof( MODE_PARAMETER_HEADER ) )
  {
        PMODE_PARAMETER_HEADER pModeData =
                     (PMODE_PARAMETER_HEADER)pCurSrb->DataBuffer;
        pModeData->DeviceSpecificParameter |= MODE_DSP_WRITE_PROTECT;
   }

下面要做的就是将irp传给下层驱动程序处理。

结果:没有实现只读,USB存储设备可以正常的读写。
      uchOperationCode 的值一直是0。

问题出在什么地方呢?
希望高手能帮忙解决一下,谢谢了!
coban624
驱动牛犊
驱动牛犊
  • 注册日期2006-02-08
  • 最后登录2010-07-14
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望13点
  • 贡献值0点
  • 好评度11点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2007-01-16 14:00
想问你一下,你都加入了什么头文件?还有PMODE_PARAMETER_HEADER这个类型是在那定义的?我加了scsi.h和srb.h头文件,为什么编译的时候有很多错误?我是按照/toaster/filter的例子改的,能不能指导一下
yzzm521
驱动牛犊
驱动牛犊
  • 注册日期2006-02-20
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分300分
  • 威望31点
  • 贡献值0点
  • 好评度30点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2007-05-19 10:11
关注ing
wanted999
驱动牛犊
驱动牛犊
  • 注册日期2006-03-28
  • 最后登录2012-08-13
  • 粉丝0
  • 关注0
  • 积分519分
  • 威望429点
  • 贡献值0点
  • 好评度48点
  • 原创分0分
  • 专家分0分
地板#
发布于:2007-07-21 16:38
只要反过来操作就可以了!
baisix
驱动牛犊
驱动牛犊
  • 注册日期2007-01-19
  • 最后登录2019-03-04
  • 粉丝0
  • 关注0
  • 积分17分
  • 威望114点
  • 贡献值0点
  • 好评度17点
  • 原创分0分
  • 专家分0分
  • 社区居民
地下室#
发布于:2008-06-05 10:21
怎么反过来操作
jackli2008
驱动牛犊
驱动牛犊
  • 注册日期2008-06-15
  • 最后登录2009-08-09
  • 粉丝1
  • 关注0
  • 积分5分
  • 威望14点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2008-07-14 17:06
你这是在pc上实现的 功能  还是usb端呢,新手,请教一下?
ztf86781163
驱动牛犊
驱动牛犊
  • 注册日期2005-06-25
  • 最后登录2013-09-09
  • 粉丝0
  • 关注0
  • 积分6分
  • 威望55点
  • 贡献值0点
  • 好评度11点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2008-07-16 21:35
安装位置不对
fpcc
驱动牛犊
驱动牛犊
  • 注册日期2005-12-29
  • 最后登录2012-04-01
  • 粉丝0
  • 关注0
  • 积分4分
  • 威望43点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2008-07-30 11:31
这个东西应该是PC端的吧。
游客

返回顶部