阅读:1696回复:3
请帮忙解释关于U盘只读过滤驱动中的部分代码!
if(opCode==SCSIOP_MODE_SENSE)
{ DbgPrint("SCSIOP_MODE_SENSE"); IoCopyCurrentIrpStackLocationToNext(irp); IoSetCompletionRoutine(irp, (PIO_COMPLETION_ROUTINE) FilterModeSenseCompletionRoutine, &event, TRUE, TRUE, TRUE); deviceExtension = (PDEVICE_EXTENSION) Device_Object->DeviceExtension; return IoCallDriver (deviceExtension->topDevObj, irp);//下层都做了什没? 。。。。。。。。。。 。。。。。。。。。 NTSTATUS FilterModeSenseCompletionRoutine {。。。。。。。。 if(opCode==SCSIOP_MODE_SENSE && CurSrb->DataBuffer && CurSrb- >DataTransferLength >= sizeof(MODE_PARAMETER_HEADER)) //? { modeData = (PMODE_PARAMETER_HEADER)CurSrb->DataBuffer; //? modeData->DeviceSpecificParameter|=MODE_DSP_WRITE_PROTECT; //? } } 请帮忙解释这两段代码? MODE_SENSE 身没作用? 如何实现的只读?对于(删除,剪切等操作如何处理的)? 谢谢回答。 |
|
|
沙发#
发布于:2005-06-19 11:28
自己先顶一下
|
|
|
板凳#
发布于:2007-07-21 16:58
代码是正确的,
偶试过了,可以用, 可是事情没这么简单啊! M$留了一手...... |
|
地板#
发布于:2007-07-25 12:31
wanted999
能说一下,怎么样可以拦到SCSIOP_MODE_SENSE的命令吗? inf文件注册自己的过滤器到哪里呢? 在usb类注册成自己的lower的过滤器,是拦不到SCSIOP_MODE_SENSE的~~ |
|