babizhu
驱动牛犊
驱动牛犊
  • 注册日期2002-01-29
  • 最后登录2003-08-13
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2113回复:2

w2k下的PassThru和用户态交互修改说明 之补遗篇

楼主#
更多 发布于:2002-02-21 12:13
首先要万分感谢condor大虾,为我们这些新手着想,贴出了这片贴子,可能由于贴的时候比较匆忙,因此遗漏了一些东西,导致无法直接编译,为新手造成了一些困惑,经过一些摸索,我把condor大虾所遗漏的东西给补上,希望能对新手有所帮助

另外正如condor所说如果您熟悉,就不要看我的修改,
也不会浪费您的时间。 而且,我更是一个新手,我的修改只能保证功能得已实现,其余的,嘿嘿,说不准了

1
在加全局变量处请再加上下面几个
NDIS_SPIN_LOCK GlobalLock;
UINT MiniportCount;
NDIS_HANDLE WrapperHandle;
值得注意的是最后一个变量是从DriverEntry中取出来的,因为在那个函数的变量WrapperHandle在另外的地方会用到(NdisMRegisterDevice函数)

2
在PtRegisterDevice中
将PDRIVER_DISPATCH MajorFunction[IRP_MJ_MAXIMUM_FUNCTION]; 改为
PDRIVER_DISPATCH MajorFunction[IRP_MJ_MAXIMUM_FUNCTION+1];

将MajorFunction = PtDispatch;
改为
MajorFunction(i) = PtDispatch;请自行把()改为[],因为论坛会把[x]进行一些处理,当x=i时,就是斜体的意思,估计condor大虾也是让这个给害了

3.在passthru.h文件中多增加上一个申明
extern NDIS_SPIN_LOCK GlobalLock;
好了至此,修改完毕,编译,安装什么的,不用多费口水了吧

其实我的目的是让应用程序传递一个数组来给IM,哎,革命尚未成功,同志人须努力!!

之所以我没有把所有的源代码贴上来,是因为,我认为,新手,特别是和我一样的新手,进入一个全新的世界后,如履薄冰,步步艰难,越是如此,越因该不怕牺牲,勇于自己探索,如果你还有什么不明白的地方,请liu_kun@21cn.com,大家一起讨论吧!

最后,我不得不感谢论坛上的zhaock ,因为,一开始,我也是想直接找他要源代码的,是他的一番话给我勇气,让我有勇气自己来面对陌生的代码

[编辑 -  2/21/02 作者: babizhu]

最新喜欢:

xiaojian521xiaoji...
wengyu100
驱动牛犊
驱动牛犊
  • 注册日期2003-10-10
  • 最后登录2006-10-21
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-12-11 14:42
这篇遗补的文章太重要了
谢谢
jackbill
驱动牛犊
驱动牛犊
  • 注册日期2007-09-21
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分190分
  • 威望20点
  • 贡献值0点
  • 好评度19点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2007-11-29 21:34
恩,学习了!!!
游客

返回顶部