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

急!怎样让.sys文件执行起来?

楼主#
更多 发布于:2002-08-07 18:56
我有一个w2k下的LLC驱动(应该是属于Net Driver一类的)文件(.sys),我写了一个简单的.inf文件,对它进行安装,安装过程没什么错误出现,而且,安装完后,系统的“协议”中出现了我的LLC协议项,但是我发现,我的.sys文件根本就没有被执行,也就是说根本没有进入DriverEntry函数。
为此,我参考了w2k自带的AppleTalk协议的.inf文件,我只是把其中指明AppleTalk的.sys的地方改成了我自己的.sys,这样,我发现我的.sys被执行了,也即进入DriverEntry了。
我不知道这是为什么,我最想知道的是:在inf文件中需要怎样设置才能使我的.sys文件在安装时执行进行初始化?
不知道大家以前有没有遇到过这样的问题。
Quakexg
驱动小牛
驱动小牛
  • 注册日期2001-11-21
  • 最后登录2012-02-29
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望56点
  • 贡献值0点
  • 好评度18点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-08-08 08:29
天下驱动大家抄!
兄弟这样已经可以了。

试问:哪个MINIPORT的DRIVER没有抄NE2000的痕迹?
ufo_online
驱动牛犊
驱动牛犊
  • 注册日期2002-04-26
  • 最后登录2004-03-26
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-08-08 08:46
DriverEntry其实早就执行了,它只是告诉系统所注册的处理函数。
你可以在所注册中的函数(比如发送)中设置断点,观察程序的运行情况。
至于在DriverEntry中设置断点,我也没试过,可能要将SoftICE设置成“系统启动时加载”。
kaput
驱动中牛
驱动中牛
  • 注册日期2002-06-26
  • 最后登录2004-08-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-08-08 09:25
如果安装成功,初始化(DriverEntry)肯定已经执行过了。不知道你是怎么“发现”的。
你可以在DriverEntry中设置调试语句DbgPrint(\"调试信息\");从DS的Driver Monitor或Dbgview中看到该信息,判断初始化是否被执行。或者使用softICE(需要设置断点)调试。
天下风云出我辈 一入江湖岁月催 鸿图霸业谈笑中 不胜人生一场醉......
minichen
驱动牛犊
驱动牛犊
  • 注册日期2002-08-01
  • 最后登录2002-08-12
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-08-08 10:06
我的前一个贴子可能没有说的太仔细,事情是这样的,我不太会用Driver的开发工具,对于Debug信息的产生,我没有试过,我是用这种方法跟踪的:我在DriverEntry的开头打开一个文本文件,将跟踪信息fprintf到文件中。我是在DDK For 2000中用Build.exe手工编译的,加入了fprintf所要求的库后,编译链接我的.sys文件,成功。当我用AppleTalk的.inf安装我之前没有fprintf语句的.sys文件时,安装好后,我发现系统设备中出现了.sys中所加的设备(Device),没有错误提示,但是我用有fprintf语句的.sys文件安装时,在安装时,它就提示执行.sys文件时出错,我想应该是.sys文件中不能有对文件读写的代码,所以我知道,安装时一定是执行了我的DriverEntry函数,但是我用自己写的.inf文件安装有fprintf语句的.sys文件时,没有提示执行.sys文件错,说明肯定没有执行DriverEntry函数,因为如果执行一定会出错。所以我想知道,是inf文件中的什么部分可能会导致.sys文件不被执行。
AllenZh
驱动老牛
驱动老牛
  • 注册日期2001-08-19
  • 最后登录2015-11-27
  • 粉丝19
  • 关注10
  • 积分1316分
  • 威望2387点
  • 贡献值7点
  • 好评度321点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2002-08-09 18:14
老弟呀,象fprintf这样的函数通常是不能在ring0中call的,你可同其它一些的kernel文件操作函数来实现
1,承接Windows下驱动/应用开发 2,本人原创虚拟鼠标/键盘,触摸屏,虚拟显卡,Mirror驱动,XP无盘的SCSI虚拟磁盘驱动等 3,windows下有尝技术服务(包括BUG调试,员工培训等) 欢迎深圳和海外企业联系.msn:mfczmh@sina.com
游客

返回顶部