stoneyr
驱动牛犊
驱动牛犊
  • 注册日期2002-01-13
  • 最后登录2007-10-31
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1326回复:6

两个简单的问题,有点混淆,请你告诉我,好吗?

楼主#
更多 发布于:2002-08-06 12:25
问两个很菜的问题:
1、是不是每个标准的设备都有一个地方存储着关于本设备的设备id和制造厂家的信息,这样在总线驱动程序中枚举设备时就可以从中读到这些信息然后再在inf文件中比较找相应的驱动程序。是吗?
2、IoRegisterDeviceInterface这个函数干了些什么工作?在AddDevice全程中调用时是不是向注册表中写了些什么东西,但是每次启动设备驱动时都会调用AddDevice,又每次调用这个函数向注册表写入一些东西,如果原来已经有了相应的信息,后来是不是把原来的覆盖了?但这样也很浪费呀?

谁回答了这两个问题的话,请告诉我怎么给分?对不起我只有这么一点。谢谢。
chnh
驱动小牛
驱动小牛
  • 注册日期2002-04-09
  • 最后登录2004-02-16
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-08-06 12:38
每个PNP设备都有一个制造商ID和设备ID,制造商ID是由某个组织统一发放的,设备ID由制造商指定,两个值都存放在设备的配置空间中
IoRegisterDeviceInterface是向系统注册一个设备,以供其它设备或应用程序访问,对于非PNP设备,只在安装时系统调用AddDevice
zydcat
驱动老牛
驱动老牛
  • 注册日期2001-12-06
  • 最后登录2006-04-12
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-08-06 13:42
 
但是每次启动设备驱动时都会调用AddDevice,又每次调用这个函数向注册表写入一些东西,如果原来已经有了相应的信息,后来是不是把原来的覆盖了?但这样也很浪费呀?



霍霍,不是向注册表里写,是注册一个接口,供别人使用
[color=red]肥虫虫[/color] [img]http://www.driverdevelop.com/forum/upload/bradley/2002-11-15_ig01.gif[/img]
denizen
驱动大牛
驱动大牛
  • 注册日期2001-12-30
  • 最后登录2012-05-15
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-08-06 13:58
adddevice的主要作用就是创建一个fdo,并把它连接到设备堆栈中。

[编辑 -  8/6/02 by  denizen]
Where there is a will, there is a road.
stoneyr
驱动牛犊
驱动牛犊
  • 注册日期2002-01-13
  • 最后登录2007-10-31
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-08-06 14:41
denizen:
这个\"注册一个接口”应怎么样理解?不是向注册表里写才能注册吗?要不然用户怎样才能找到这个接口?
chnh:
这个“配置空间”在哪?
stoneyr
驱动牛犊
驱动牛犊
  • 注册日期2002-01-13
  • 最后登录2007-10-31
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2002-08-06 14:54
我知道了,这个设备配置空间就在设备上。
ARRON
驱动老牛
驱动老牛
  • 注册日期2002-03-18
  • 最后登录2010-05-02
  • 粉丝0
  • 关注0
  • 积分28分
  • 威望21点
  • 贡献值0点
  • 好评度10点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2002-08-06 15:03
呵呵,是呀
游客

返回顶部