silan
驱动小牛
驱动小牛
  • 注册日期2002-02-04
  • 最后登录2004-03-22
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2387回复:10

ne2000网卡驱动中Install_Driver和DetectNE2000接口是什么用?(30分答谢)--分数已给

楼主#
更多 发布于:2003-02-18 09:22
在ne2000.def文件中内容如下:
LIBRARY        NE2000

EXPORTS       DriverEntry
                     Install_Driver
                     DetectNE2000
其中的Install_Driver和DetectNE2000是给谁用的,WinCE下支持即插即用吗?安装硬件会不会象Windows2000那样弹出I/O管理器说发现新硬件,还是直接修改注册表,我是不是还要提供一个注册表文件?Install_Driver好像就是修改注册表的嘛,但是怎么用呢?谢谢!!!

[编辑 -  3/12/03 by  silan]
/***************************/ 认认真真学好三个代表,踏踏实实做好无产阶级接班人。 /***************************/
edwinkoo
驱动牛犊
驱动牛犊
  • 注册日期2003-01-29
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-02-18 11:37
应该是这样的吧

installdriver后
系统会根据设备类型激活设备,这一步一定要有系统去完成
然后去notifycation系统设备安装成功
下一步就是具体的操作了,而且activatedevice的同时系统会去自动加载xxx_init操作加载标准驱动的export function到内存
然后用户就可根据deviceiocontrol对设备进行操作
silan
驱动小牛
驱动小牛
  • 注册日期2002-02-04
  • 最后登录2004-03-22
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-02-18 13:33
系统是在什么时候调用Install_Driver的,如果系统是通过调用Install_Driver来安装驱动,那么Install_Driver里面怎么没有判断DeviceID和VendorID的程序呢?

[编辑 -  2/20/03 by  silan]
/***************************/ 认认真真学好三个代表,踏踏实实做好无产阶级接班人。 /***************************/
silan
驱动小牛
驱动小牛
  • 注册日期2002-02-04
  • 最后登录2004-03-22
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-03-09 18:28
可以看到Install_Driver中是在添加绑定关系的东西,这个东西是什么时候调用的呢?
从装载的角度说,应该是是在第一次添加硬件的时候使用吧,只有这时候才用的着啊!
Install_Driver是dll里的一个exports吧,那么系统是不是在每次启动的时候根据Install_Driver这个名字来调用这个接口的呢?
/***************************/ 认认真真学好三个代表,踏踏实实做好无产阶级接班人。 /***************************/
yusb
驱动牛犊
驱动牛犊
  • 注册日期2002-10-16
  • 最后登录2006-02-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-03-10 11:22
1、DetectNE2000是给PCMCIA接口用的,如果你的是PCI,应该不用理会
2、Install_Driver是在写注册表,这样的话好象就不会手工修改注册表了,我估计可能是为了支持即插即用而设置的。
yusb
驱动牛犊
驱动牛犊
  • 注册日期2002-10-16
  • 最后登录2006-02-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-03-10 11:27
对了install_driver应该是由设备管理器调用的,你用想弄清楚,你可以看看设备管理的源码
yusb
驱动牛犊
驱动牛犊
  • 注册日期2002-10-16
  • 最后登录2006-02-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2003-03-10 11:37
按照我的理解,我觉得如果你是PCI的,那么可以不EXPORTS这两个函数,因为它们主要是用来实现即插即用的,如果是PCI的直接先在注册表里把注册项设好就行了。

注意:上面是我的一点片面理解,希望不要话误导你。
我以前用Ne2000和83815,都是先设的注册项。不过是CE3.0以前的,
3.0之后drvier的结构变化挺大的。而且一年多没看过CE下的东西了,可能会不不样了。

如果你的是PCI的,建议:找一个PCI的驱动看看,83815就好象是PCI的,
silan
驱动小牛
驱动小牛
  • 注册日期2002-02-04
  • 最后登录2004-03-22
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2003-03-12 14:07
那是不是直接在PlatformBuilder里面改?是修改那个platform.reg吗?那我如果用别人的网卡,或者我的网卡给别人用,岂不是都要先修改注册表,能不能像windows2000那样写个.inf安装文件。我去查查83815的资料。谢谢你!
/***************************/ 认认真真学好三个代表,踏踏实实做好无产阶级接班人。 /***************************/
silan
驱动小牛
驱动小牛
  • 注册日期2002-02-04
  • 最后登录2004-03-22
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2003-03-12 14:11
很奇怪的是,我在PlatformBuilder中F9设断点后,运行起来时,断点就乱了,明明我的Driver没被加载,可是却停在了我的Driver里面,而且断点都移掉了,全乱掉了。我用的PlatformBuilder410.net emulation破解版,我怀疑会不会是PlatformBuilder的问题。
/***************************/ 认认真真学好三个代表,踏踏实实做好无产阶级接班人。 /***************************/
yusb
驱动牛犊
驱动牛犊
  • 注册日期2002-10-16
  • 最后登录2006-02-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2003-03-12 15:44
谢谢silan!

1、是在PB里改,可能是在PLATFORM.REG,我记不太清了,因为有好几个*.reg,你可以在几个*.reg里查找一下,一定能找到。
  另外:A、你也可以写一个小程序,去创建注册表项,就象install_driver函数所做的事情一样,运行这个小程序后再重起就可以了。(注意一定要保存注册表)
    B、直接用注册表修改工具,修改注册表选项。保存后再重启。
yusb
驱动牛犊
驱动牛犊
  • 注册日期2002-10-16
  • 最后登录2006-02-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2003-03-12 15:46
你用_asm int 3; 试试吧,这个应该能断住,比较可靠。
游客

返回顶部