写了一个文件过滤驱动filter,使用DriverMonitor动态加载的时候所有盘都可以挂接上,没问题。可是用inf文件安装后随系统启动加载(StartType=0)就出问题了:我有3个盘,c盘是fat32,d盘是ntfs,f盘是虚拟光驱。调试显示这时候会收到4个Mount卷的IRP,可是4个都是CdRom的,也就是说4个都是光驱的,只收到f盘的mount,没收到c和d盘的Mount IRP,也就挂接不到c和d盘了,请问可能是什么原因OS:2000 Server
用的2003的ifs ddk
用的2003的ifs ddk
解决方案 »
- OnPaint闪烁
- 错误:Unhandled exception in kernel32.dll 0xc0000005:Access Violation,单步后看是一函数执行完析构时的错误,高手帮忙
- CListCtrl不刷新数据
- MFC开发程序基于LISTVIEW的框架,如何改变mainfrm代码以改变视图的显示
- 请大家找找数字变换的规律
- 请问有关CSplitterWnd的问题
- 关与memcpy函数
- 为什么我的出现重复包含呢?
- 搞过ISA的朋友请帮我啊...
- 如何防止软盘被拷贝(拜托各位了,急!!!!)
- 怎样设置IE中的代理服务器(程序运行后自动改),谢谢大家,在线等!
- 求助:OpenUrl()在服务方式下运行的问题。。。
在DriverEntry里面你应该生成一个CDO,而不是在IRP_MJ_FILE_SYSTEM_CONTROL或者它的minor function里面来挂接CDO。
2.IoRegisterFsRegistrationChange在xp以上的系统上不枚举已经加载的文件系统的。
关于 IoRegisterFsRegistrationChange 你讲反了吧,在XP以上的系统上是枚举所有存在的文件系统,除了RAW。而在2000下,是不会枚举在filter之前加载的文件系统的。
not know that the mount has completed until all the mount IRP's
processing is finished, which includes the execution of all the
completion routines.
就是pioneer_public() 说的“而在2000下,是不会枚举在filter之前加载的文件系统的。”codewarrior(会思考的草) 兄建议“分别用2000ifsddk和2003ifddk里的sfilter试试看吧。”,我到处找了都没看到有2k的ddk,哪位知道麻烦给个连接。0011411(爱也许是假的,可是当时的快乐是真的。)
“Your completion routine is still too early. The IO Manager will
not know that the mount has completed until all the mount IRP's
processing is finished, which includes the execution of all the
completion routines. ” Thanks for your answer,It's so useful for me.再次谢谢大家
爽啊