阅读:828回复:2
在VXD里实现改变文件请求
我是在win98下用VXD拦截文件请求的。是参考filemon。
但如何改变文件请求呢? 钩子原型是FilemonHookProc(pIFSFunc pfn,int fn, int Drive, int ResType, int CodePage, pioreq pir ) 如何在系统读文件C:\\test.txt时,改为读D:\\test.txt呢?仅仅是改个盘符而已。如果连路径都改的话,又要改那里呢? 我试过改Drive和pir->ppath,都没有效果。 我记得以前论坛里有个这个的贴子,但没有人回答呢。 究竟要怎样改才能实现呢?请大虾们指教 |
|
|
沙发#
发布于:2002-11-25 23:03
你要在哪个里面做?
你要自己用Ring0 FileIO把ioreq里面参数添上,返回给ifsmgr,同时还要防止重入。这样做,read/write/find都可以,就是open的时候会出问题。 |
|
|
板凳#
发布于:2002-11-26 07:31
我最主要是想在open是做的。
如果在Open时已修改了,那么这时进行Read,Write时应该也是对D:\\test进行操作吧。 站在应用程序的角度来说,要打开一个文件,都需要用 HANDLE CreateFile(LPCTSTR lpszName, DWORD fdwAccess, DWORD fdwShareMode, LPSECURITY_ATTRIBUTES lpsa, DWORD fdwCreate, DWORD fdwAttrsAndFlags, HANDLE hTemplateFile) 这时会触发文件的Open拦截,如果我将它的请求改为d:\\test,那返回的名柄是指向文件d:\\test的。那样应用程序再对它进行读写当然也是在操作d:\\test 我现在最急着需要的是这样的拦截,至于其他的Find之类暂时不需要了 请各位大虾再指教 |
|
|