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

我说得细了一点,希望有人帮一下忙(20分)

楼主#
更多 发布于:2002-08-08 10:58
我有一个w2k下的LLC驱动(应该是属于Net Driver一类的)文件(.sys),我写了一个简单的.inf文件,对它进行安装,安装过程没什么错误

出现,而且,安装完后,系统的“协议”中出现了我的LLC协议项,但是我发现,我的.sys文件根本就没有被执行,也就是说根本没有进入Driv

erEntry函数。
为此,我参考了w2k自带的AppleTalk协议的.inf文件,我只是把其中指明AppleTalk的.sys的地方改成了我自己的.sys,这样,我发现我的.sys

被执行了,也即进入DriverEntry了。
我不知道这是为什么,我最想知道的是:在inf文件中需要怎样设置才能使我的.sys文件在安装时执行进行初始化?
不知道大家以前有没有遇到过这样的问题。


我的前一个贴子可能没有说的太仔细,事情是这样的,我不太会用Driver的开发工具,对于Debug信息的产生,我没有试过,我是用这种方法跟

踪的:我在DriverEntry的开头打开一个文本文件,将跟踪信息fprintf到文件中。我是在DDK For

2000中用Build.exe手工编译的,加入了fprintf所要求的库后,编译链接我的.sys文件,成功。当我用AppleTalk的.inf安装我之前没有fprint

f语句的.sys文件时,安装好后,我发现系统设备中出现了.sys中所加的设备(Device),没有错误提示,但是我用有fprintf语句的.sys文件

安装时,在安装时,它就提示执行.sys文件时出错,我想应该是.sys文件中不能有对文件读写的代码,所以我知道,安装时一定是执行了我的D

riverEntry函数,但是我用自己写的.inf文件安装有fprintf语句的.sys文件时,没有提示执行.sys文件错,说明肯定没有执行DriverEntry函

数,因为如果执行一定会出错。所以我想知道,是inf文件中的什么部分可能会导致.sys文件不被执行。
mailporn
驱动牛犊
驱动牛犊
  • 注册日期2002-03-12
  • 最后登录2008-10-29
  • 粉丝0
  • 关注0
  • 积分6分
  • 威望20点
  • 贡献值0点
  • 好评度16点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-08-08 11:07
我也发现过同样的问题,现象是这样的:

如果驱动已经装载过,如果卸掉重装则DriverEntry不执行,但系统重启时会执行;如果这个驱动在系统启动时没有装载过,则第一次安装时会执行DriverEntry
海人
sunnnn
驱动牛犊
驱动牛犊
  • 注册日期2002-01-30
  • 最后登录2009-03-20
  • 粉丝0
  • 关注0
  • 积分24分
  • 威望4点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-08-08 13:29
运行在和心态的代码,一般情况下,除了标准C里的一些函数可以使用外,一般情况下是不能随便调用用户态的函数的,以前我也发过类似的问题,当时,公司的头要我调用一个用户态的API,我的第一感觉就不行!
smallbarrow
驱动小牛
驱动小牛
  • 注册日期2002-06-05
  • 最后登录2018-05-29
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望20点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
  • 社区居民
地板#
发布于:2002-08-08 15:44
弟兄们,在imd等底层驱动中不要调用上层(用户级)的api或库函数如printf, malloc等。会出问题的。

调试这些驱动,可以装一个softice,在代码中加入dbgprint打印语句。
嗒嗒的,是那马蹄 是我的心声 别了 一瞬间的花朵
游客

返回顶部