baolei
驱动牛犊
驱动牛犊
  • 注册日期2002-10-29
  • 最后登录2003-03-19
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2035回复:7

如何在FastIo函数中进行伪装返回?

楼主#
更多 发布于:2003-03-12 17:16
请问是否能在filemon的FilemonFastIo函数中进行伪装返回,或进行重定向,如把对文件a的访问请求转成访问文件b?谢谢!

最新喜欢:

rhpengrhpeng
vcmfc
驱动中牛
驱动中牛
  • 注册日期2001-03-23
  • 最后登录2008-01-28
  • 粉丝0
  • 关注0
  • 积分528分
  • 威望53点
  • 贡献值0点
  • 好评度52点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-03-12 17:25
不用fastio,只要在IRP_MJ_CREATE中就可以了。



参考前贴。
baolei
驱动牛犊
驱动牛犊
  • 注册日期2002-10-29
  • 最后登录2003-03-19
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-03-13 09:47
谢谢vcmfc,
再问一下,是否只需修改FileObject中的Filename就可实现重定向了?
另外编译filemon.exe时说SetWindowLongPtr未定义,请问如何定义该函数?
再次感谢!
vcmfc
驱动中牛
驱动中牛
  • 注册日期2001-03-23
  • 最后登录2008-01-28
  • 粉丝0
  • 关注0
  • 积分528分
  • 威望53点
  • 贡献值0点
  • 好评度52点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-03-13 20:00
faint......


SetWindowLongPtr是APP层的函数,DDK不能用。

baolei
驱动牛犊
驱动牛犊
  • 注册日期2002-10-29
  • 最后登录2003-03-19
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-03-14 20:08
filemon.exe是APP层的程序(不是filemon.sys),前些天coolice在一个贴里说可自己定义一下该函数,或者装PlatformSDK。但不知如何自己定义,望能赐教。另外PlatformSDK好象有400多M,太大,而且我也没找到:(


 
vcmfc
驱动中牛
驱动中牛
  • 注册日期2001-03-23
  • 最后登录2008-01-28
  • 粉丝0
  • 关注0
  • 积分528分
  • 威望53点
  • 贡献值0点
  • 好评度52点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-03-14 21:36
我看错了。

filemon.exe 是APP的,那个函数在MSDN一查,它们告诉你的在哪个头文件。


好像不用安装platform sdk,一装vc6就可以编译了。记得include相应头文件。
baolei
驱动牛犊
驱动牛犊
  • 注册日期2002-10-29
  • 最后登录2003-03-19
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2003-03-18 18:19
再次感谢vcmfc!
MSDN我看了一下,说是它在winuser.h中定义的,只要include头文件windows.h即可,但windows.h已包含在filemon.c中了。我又看了一下winuser.h中关于SetWindowLongPtr的定义如下:
WINUSERAPI
LONG_PTR
WINAPI
SetWindowLongPtrA(
    HWND hWnd,
    int nIndex,
    LONG_PTR dwNewLong);

WINUSERAPI
LONG_PTR
WINAPI
SetWindowLongPtrW(
    HWND hWnd,
    int nIndex,
    LONG_PTR dwNewLong);

#ifdef UNICODE
#define SetWindowLongPtr  SetWindowLongPtrW
#else
#define SetWindowLongPtr  SetWindowLongPtrA
#endif // !UNICODE

我试着将其直接用到程序中,依然编译不通。
baolei
驱动牛犊
驱动牛犊
  • 注册日期2002-10-29
  • 最后登录2003-03-19
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2003-03-19 11:20
我在程序中把该函数改成SetWindowLongA;由于参数GWLP_WNDPROC也没定义,而且不知道它的值,干脆把它改成6;再把LONG_PTR改成LONG,在ListViewSubclass前加个*,居然编译通过,且能运行了。
在此再一次对vcmfc表示感谢。
游客

返回顶部