| 
					阅读:2194回复: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端的吧。				 | |
 
							
 
				