阅读:2051回复:7
USB存储设备的只读
我写了一个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。 问题出在什么地方呢? 希望高手能帮忙解决一下,谢谢了! |
|
沙发#
发布于:2007-01-16 14:00
想问你一下,你都加入了什么头文件?还有PMODE_PARAMETER_HEADER这个类型是在那定义的?我加了scsi.h和srb.h头文件,为什么编译的时候有很多错误?我是按照/toaster/filter的例子改的,能不能指导一下
|
|
板凳#
发布于:2007-05-19 10:11
关注ing
|
|
地板#
发布于:2007-07-21 16:38
只要反过来操作就可以了!
|
|
地下室#
发布于:2008-06-05 10:21
怎么反过来操作
|
|
5楼#
发布于:2008-07-14 17:06
你这是在pc上实现的 功能 还是usb端呢,新手,请教一下?
|
|
6楼#
发布于:2008-07-16 21:35
安装位置不对
|
|
7楼#
发布于:2008-07-30 11:31
这个东西应该是PC端的吧。
|
|