bluetiger
驱动牛犊
驱动牛犊
  • 注册日期2003-02-22
  • 最后登录2010-09-09
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望100点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
阅读:1532回复:3

NDIS(中间层驱动)中如何调用DLL库

楼主#
更多 发布于:2003-03-05 11:48
请问大虾:NDIS(中间层驱动)中如何调用DLL库的函数??
谢谢!!
SharpShooter
驱动小牛
驱动小牛
  • 注册日期2002-04-07
  • 最后登录2013-07-05
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望40点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-03-05 15:00
请问大虾:NDIS(中间层驱动)中如何调用DLL库的函数??
谢谢!!

如果是Kernel Mode的Dll,调用的方法和普通Dll一样,有Lib更好,一起编译就行了,没有Lib就得实现内核模式下类似用户态GetProcAddr的函数查找,本站以前的帖子里常见过这个问题的讨论。
比如这个:
http://www.driverdevelop.com/forum/viewthread.php?tid=19142#pid116685

如果是用户态的Dll,这个就比较麻烦了,一般的用户态函数可以通过某种门机制(CallGate)在内核态运行,但如果是设备驱动中使用,估计问题不小,抱歉我没有试过。请各位大哥指点吧。不过我想不会有什么很必要在内核调用用户态Dll的情况吧?
写驱动不如买足彩!!
bluetiger
驱动牛犊
驱动牛犊
  • 注册日期2003-02-22
  • 最后登录2010-09-09
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望100点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-03-05 15:09
callgate 是什么机制?
我自己写一个外部函数库如何调用呢?能否给个简单例子
如:int a(int b,int c)
    {
     int res;
      res = b+c;
      return res;
    }
这个DLL库函数如何在NDIS中引用????

[编辑 -  3/5/03 by  bluetiger]
SharpShooter
驱动小牛
驱动小牛
  • 注册日期2002-04-07
  • 最后登录2013-07-05
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望40点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-03-05 19:22
其实我也不是很明白,CallGate在UndocumentNT中有描述,基本是通过将函数的地址、参数等传入内核,让一个用户态的函数在内核态执行以获取内核态才拥有的权限。我没有研究过,只是记得以前看到过,应该是在UndocumentNT中吧,好像还有例子,本站对UndocumentNT的讨论也比较多,找找看吧。不过我估计对你应该没有太大用处。
写驱动不如买足彩!!
游客

返回顶部