CKCKCK
驱动牛犊
驱动牛犊
  • 注册日期2003-07-01
  • 最后登录2006-11-09
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望2点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
阅读:1507回复:12

libin2309(我已经给你分了)及各路高手,进来啊,29分简单问题

楼主#
更多 发布于:2003-08-05 18:33
libin2309,上次真的不好意思,因为是第一次发帖子,连起码的规矩都不知道,忘记给分了,其实我也不知道这分有什么用,你要的话我全部给你好了!

我这里就只有一个问题,为什么在申请资源以前我在查找注册表总是找不到设备信息,但是我在更新驱动程序时又能正确地找到我的INF文件

Table[0].Name=SubPath.Buffer;
Table[0].Flags=RTL_QUERY_REGISTRY_TOPKEY;
//
//RTL_QUERY_REGISTRY_SUBKEY
Table[1].Name=L\"PORT\";
Table[1].Flags=RTL_QUERY_REGISTRY_SUBKEY;
Table[1].EntryContext=&pDevice->OPortBase;
Table[2].Name=L\"SPAN\";
Table[2].Flags=RTL_QUERY_REGISTRY_SUBKEY;
Table[2].EntryContext=&pDevice->PortSpan;
Table[3].Name=L\"IRQ\";
Table[3].Flags=RTL_QUERY_REGISTRY_SUBKEY;
Table[3].EntryContext=&pDevice->OIrql;

//////query the table

status=RtlQueryRegistryValue(RTL_REGISTRY_SERVICES,
RegistryPath->Buffer,
Table,
NULL,NULL);

谢谢,非常感谢

最新喜欢:

bigbeebigbee
libin2309
驱动大牛
驱动大牛
  • 注册日期2002-11-20
  • 最后登录2005-12-29
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-08-05 21:14
谢谢你!
我是用DS写的,和你有些差别,不过原理是一样的,你的硬件资源信息是写在注册表里的,是这样吧,你在驱动里,查询他们,获得后就构造资源列表,然后向系统申请,这里只要按DDK的帮助文档做,应该没问题的,但前提是你的注册表里肯定要有你的硬件资源信息,(你认为写进去的),你说的那个INF文件,我就不理解了, ISA的驱动一般是写成NT的了,怎么还有INF文件?
我是一只小小鸟,永远也飞也飞不高,但我永远在飞!
CYoung
驱动中牛
驱动中牛
  • 注册日期2003-06-10
  • 最后登录2005-01-04
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-08-05 21:44
可以找到INF文件并不代表你的INF文件是正确的。检查一下你的INF里面的VendorID和DeviceID,看看和硬件的对不对上。
答得好的话,请兄弟们加点分,那是对我的肯定
libin2309
驱动大牛
驱动大牛
  • 注册日期2002-11-20
  • 最后登录2005-12-29
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-08-06 11:08
可以找到INF文件并不代表你的INF文件是正确的。检查一下你的INF里面的VendorID和DeviceID,看看和硬件的对不对上。


你说的是PNP的ISA卡,帖主好象做的是非PNP的ISA卡,所以不存在那些ID,我觉得你用DDK可完全写成NT试的驱动,不存在 INF文件,少了很多的麻烦,硬件资源信息你放在注册表里,在驱动里查询注册表,获得这些信息,应该是没什么问题的。
我是一只小小鸟,永远也飞也飞不高,但我永远在飞!
CKCKCK
驱动牛犊
驱动牛犊
  • 注册日期2003-07-01
  • 最后登录2006-11-09
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望2点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-08-06 18:48
不好意思,由于我是下班后在网吧上网,所以带了U盘但是不能用,所以这里只能简单地大概地说一哈

我除了添加常用的三个项,就是在registry\\machine\\system\\..controlset\\services下面加了项isa
isa下面加了键:start,type,error...
还加了项Parameters
parameters下面加了项device0
device0下面加了键irq,port和span

我用了各种方法来查询这个注册表,但是都不成功,都是返回了
STATUS_NOT_OBJECT_NAME_FOUND,我是凭记忆说的,好象就是这个
就是c0000034
我后来用了zwopenkey也不行,结果是一样的,谁能告诉我是怎么回事啊
我虽然在网吧上网,虽然月工资900,但是我愿意买分相送,谢谢,非常谢谢!!!!!!!!!!!!
CKCKCK
驱动牛犊
驱动牛犊
  • 注册日期2003-07-01
  • 最后登录2006-11-09
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望2点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-08-06 18:54
我做的确实是非pnp的ISA板卡,我用INF和用手工修改注册表没什么差别吧??DDK也是这么说的

我又看了DDK的文档,好象说是还和enum\\boot\\有点什么关系是不是啊?

我在这个问题上已经折腾了一个礼拜了,把书都翻烂了,还把DDK自带的例程看了一遍,但是还没有解决,是不是什么地方出错了!!希望大家慈悲为怀,我一定非常非常感谢,真的非常感谢了!!!

非常感谢!!!

[编辑 -  8/6/03 by  CKCKCK]
libin2309
驱动大牛
驱动大牛
  • 注册日期2002-11-20
  • 最后登录2005-12-29
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2003-08-06 18:58
不好意思,由于我是下班后在网吧上网,所以带了U盘但是不能用,所以这里只能简单地大概地说一哈

我除了添加常用的三个项,就是在registry\\machine\\system\\..controlset\\services下面加了项isa
isa下面加了键:start,type,error...
还加了项Parameters
parameters下面加了项device0
device0下面加了键irq,port和span

我用了各种方法来查询这个注册表,但是都不成功,都是返回了
STATUS_NOT_OBJECT_NAME_FOUND,我是凭记忆说的,好象就是这个
就是c0000034
我后来用了zwopenkey也不行,结果是一样的,谁能告诉我是怎么回事啊
我虽然在网吧上网,虽然月工资900,但是我愿意买分相送,谢谢,非常谢谢!!!!!!!!!!!!


很佩服的精神!
你这样试试:把你的硬件资源信息irq,port放在registry\\machine\\system\\..controlset\\services\\isa\\Devices\\IsaDevice\\0下,我用DS写的驱动,我是放在这个路径下的!
我是一只小小鸟,永远也飞也飞不高,但我永远在飞!
CKCKCK
驱动牛犊
驱动牛犊
  • 注册日期2003-07-01
  • 最后登录2006-11-09
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望2点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2003-08-06 19:20
那我的查询的路径也跟着变了好不好?
rtlrequeryregistryvalue(.....service,subpath,table,null,null)
虽然我真有点怀疑是不是真的把subpath变一下就可以,但我明天上班做实验希望能成功啊,谢谢你!!!

主要是老板图便宜,所以数据采集卡的接口板全买的带DIP的ISA

再次感谢!!!
libin2309
驱动大牛
驱动大牛
  • 注册日期2002-11-20
  • 最后登录2005-12-29
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2003-08-06 19:23
那我的查询的路径也跟着变了好不好?
rtlrequeryregistryvalue(.....service,subpath,table,null,null)
虽然我真有点怀疑是不是真的把subpath变一下就可以,但我明天上班做实验希望能成功啊,谢谢你!!!

主要是老板图便宜,所以数据采集卡的接口板全买的带DIP的ISA

再次感谢!!!
 


我也不能保证能一定成功,试一下吧,不行再找别的原因,祝你好运!
我是一只小小鸟,永远也飞也飞不高,但我永远在飞!
CKCKCK
驱动牛犊
驱动牛犊
  • 注册日期2003-07-01
  • 最后登录2006-11-09
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望2点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2003-08-06 19:29


好!!!明天要是不成功给你10分,要是成功了,给你50分(现在好象不能给分了)
zydcat
驱动老牛
驱动老牛
  • 注册日期2001-12-06
  • 最后登录2006-04-12
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2003-08-06 21:16
资源信息我一般用应用程序写到注册表,然后在驱动中到同样的路径下读出来就可以了,用几个注册表读写函数就ok了。
关于路径,由于设备需要在service中建立自己的服务,并且由此调入驱动,所以一般就把资源信息写在对应服务键下,如果有多个设备,则需要建立子键。
[color=red]肥虫虫[/color] [img]http://www.driverdevelop.com/forum/upload/bradley/2002-11-15_ig01.gif[/img]
CKCKCK
驱动牛犊
驱动牛犊
  • 注册日期2003-07-01
  • 最后登录2006-11-09
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望2点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2003-08-07 21:26
谢谢大家,我的问题已经解决了,虽然和你们说的不相关,主要是我自己粗心造成的,谢谢大家

所以我今天上来就是想给分的,但是找不到怎么给分

zydcat20分,libin230920分,还有谁能告诉我该怎么给分我就再给5分

谢谢大家!!!

顺便告诉大家一个我才发现的事情,原来系统在启动的时候先找ENUM下的设备,如果是PNP的,就直接加载服务就可以了,如果是非PNP的,就在BOOT下面加载服务,谢谢大家,希望不要再走我的老路了呵呵

我现在这里的给分和改分的按纽都不见了!!



[编辑 -  8/7/03 by  CKCKCK]
arthurtu
驱动巨牛
驱动巨牛
  • 注册日期2001-11-08
  • 最后登录2020-12-19
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望161点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
  • 社区居民
12楼#
发布于:2003-08-08 12:38

我现在这里的给分和改分的按纽都不见了!!



[编辑 -  8/7/03 by  CKCKCK]

你已经给分了。只能给一次分。
游客

返回顶部