阅读:1534回复:1
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-17 23:05
也想知道答案
|
|