阅读:1613回复:5
禁止目录访问时不弹出系统消息的问题
我想在用户点击某个文件夹的时候,什么也不做。
DriverEntry中处理了消息DriverObject->MajorFunction[IRP_MJ_DIRECTORY_CONTROL] 在SfMyDirCtrl里 if(newDevExt->lmyFolder == 1) { Irp->IoStatus.Status = STATUS_SUCCESS; Irp->IoStatus.Information = 0; IoCompleteRequest(Irp, IO_NO_INCREMENT); return STATUS_SUCCESS. } 结果一运行系统的explore立刻就死掉了。如果我返回STATUS_INVALID_DEVICE_REQUEST就会自动弹出系统消息框"参数不正确"。请大家帮忙看看 |
|
沙发#
发布于:2007-06-19 08:02
你要把返回的数据也处理一下,单单返回STATUS_SUCCESS,caller process就会认为返回的数据是真实的
|
|
|
板凳#
发布于:2007-06-19 10:02
rayyang2000:
小弟是个初学者,请大侠明示。。。 |
|
地板#
发布于:2007-06-19 16:28
难道是改写Irp->UserBuffer的内容??
|
|
驱动小牛
![]() |
地下室#
发布于:2007-06-20 13:30
禁止访问目录最好的办法是在CREATE的时候就返回失败.CREATE返回失败了,以后什么也做不了,rayyang2000 所说的的意思是,你不仅要设置STATUS还要设置INFORMATION,因为INFORMATION里面可能会记录一些数据,而操作系统将自动根据里面的信息作一些数据转换.
|
|
5楼#
发布于:2007-06-20 14:22
那Create的时候返回失败不是也会弹消息。。。
另外,我其实是想在应用程序里去读取盘片的序列号,如果禁掉了Create,好像序列号也不会读成功 |
|