阅读:1874回复:6
usb只读过滤驱动问题
我根据 http://www.driverdevelop.com/forum/html_90057.html?1117634851 做了如下代码:
case IRP_MJ_INTERNAL_DEVICE_CONTROL: //case IRP_MJ_SCSI: // peter add CurSrb = ExAllocatePoolWithTag(NonPagedPool, sizeof(SCSI_REQUEST_BLOCK), DISK_TAG_SRB); if (CurSrb == NULL) { DBGOUT((\"no\")); }else{ DBGOUT((\"ok\")); } RtlZeroMemory(CurSrb, SCSI_REQUEST_BLOCK_SIZE); CurSrb=irpSp->Parameters.Scsi.Srb; cdb = (PCDB)CurSrb->Cdb; opCode=cdb->CDB6GENERIC.OperationCode; if(opCode==SCSIOP_MODE_SENSE && CurSrb->DataBuffer && CurSrb->DataTransferLength >= sizeof(MODE_PARAMETER_HEADER) ) { DBGOUT((\"test\")); modeData = (PMODE_PARAMETER_HEADER)CurSrb->DataBuffer; modeData->DeviceSpecificParameter|=MODE_DSP_WRITE_PROTECT; } DBGOUT((\"OperationCode1 (%x)\", cdb->CDB6GENERIC.OperationCode )); // peter add end 问题是 cdb->CDB6GENERIC.OperationCode 的植始终是 0,进不了if 里面,正确情况是1a ,请指点为什么? |
|
沙发#
发布于:2005-06-02 12:05
各位帮个忙,我在等待...
|
|
板凳#
发布于:2005-06-02 12:57
得到 opCode==EC 和 opCode==30,但是就是没有1A
郁闷,为什么? |
|
地板#
发布于:2005-06-02 13:38
出现的 opCode 值 (56) ,(30),(6C) ,每次出现的不确定,奇怪
|
|