ted
ted
驱动牛犊
驱动牛犊
  • 注册日期2001-09-27
  • 最后登录2002-04-29
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1810回复:3

为什么我用OpenDriver总是不能成功?

楼主#
更多 发布于:2002-03-21 21:21
为什么我用OpenDriver总是不能成功?  

系统环境是win98,开发工具是C++Builder.尝试过打开多个不同的驱动程序,统统失败,为什么呢?使用OpenDriver之前是不是需要进行什么特别的设置?  

void __fastcall TForm1::ButtonOpenDriveClick(TObject *Sender)  
{  
    HDRVR hDriver;  
    LRESULT lResult;  

    hDriver = OpenDriver(L\"c:\\\\windows\\\\system\\\\ndis.vxd\", NULL, NULL);  
    if (hDriver == NULL)  
    {  
        MemoInfo->Lines->Add(\"Couldn\'t open driver\");  
        return;  
    }  
    MemoInfo->Lines->Add(\"open driver success.\");  
}  

请大家指教!谢谢!!  
蝌蚪
fracker
驱动太牛
驱动太牛
  • 注册日期2001-06-28
  • 最后登录2021-03-30
  • 粉丝0
  • 关注0
  • 积分219分
  • 威望81点
  • 贡献值0点
  • 好评度23点
  • 原创分0分
  • 专家分1分
  • 社区居民
沙发#
发布于:2002-03-22 09:13
C++ Builder的OpenDriver没有用过,不过你用Win32 API不好吗?
CreateFile( \"\\\\\\\\.\\\\driver.vxd\", ... )等等,还有阿,ndis.vxd好像是系统提供的,不知道能不能用这种方式来加载哦,先试一个自己写的vxd,成功后把名字换成ndis.vxd,如果不行,可能就是不能用这种方式来加载。
ted
ted
驱动牛犊
驱动牛犊
  • 注册日期2001-09-27
  • 最后登录2002-04-29
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-03-22 09:49
我就是用的API的OpenDriver,只不过是在C++Builder的程序里面用罢了。在C++Builder里面用API和在VC下面用没有什么区别的。

那段代码就是从别人一个成功的实例里面模仿来的。不过那个成功实例里面调用的是他自己写的driver,而我这段代码里调用的是系统本身的driver

我也认为可能是调用系统driver的时候可能要有什么特别的设置(比方说可能参数要用不同写法之类的),但这些设置究竟是什么呢?我找不到这方面的实际资料。MSDN里面的说明也没有提到要特别注意什么。

另外,我的最终目的在于把网卡驱动从内存中卸掉,然后重新载入一次,从而使得新的网络设置能够生效。

十分感谢fracker的回答,如果谁知道进一步的情况,请不吝赐教!谢谢~~~~~
蝌蚪
fracker
驱动太牛
驱动太牛
  • 注册日期2001-06-28
  • 最后登录2021-03-30
  • 粉丝0
  • 关注0
  • 积分219分
  • 威望81点
  • 贡献值0点
  • 好评度23点
  • 原创分0分
  • 专家分1分
  • 社区居民
地板#
发布于:2002-03-22 10:09
啊,失察,见笑了。
游客

返回顶部