阅读:1507回复:12
libin2309(我已经给你分了)及各路高手,进来啊,29分简单问题
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); 谢谢,非常感谢 |
|
最新喜欢:bigbee |
沙发#
发布于:2003-08-05 21:14
谢谢你!
我是用DS写的,和你有些差别,不过原理是一样的,你的硬件资源信息是写在注册表里的,是这样吧,你在驱动里,查询他们,获得后就构造资源列表,然后向系统申请,这里只要按DDK的帮助文档做,应该没问题的,但前提是你的注册表里肯定要有你的硬件资源信息,(你认为写进去的),你说的那个INF文件,我就不理解了, ISA的驱动一般是写成NT的了,怎么还有INF文件? |
|
|
板凳#
发布于:2003-08-05 21:44
可以找到INF文件并不代表你的INF文件是正确的。检查一下你的INF里面的VendorID和DeviceID,看看和硬件的对不对上。
|
|
|
地板#
发布于:2003-08-06 11:08
可以找到INF文件并不代表你的INF文件是正确的。检查一下你的INF里面的VendorID和DeviceID,看看和硬件的对不对上。 你说的是PNP的ISA卡,帖主好象做的是非PNP的ISA卡,所以不存在那些ID,我觉得你用DDK可完全写成NT试的驱动,不存在 INF文件,少了很多的麻烦,硬件资源信息你放在注册表里,在驱动里查询注册表,获得这些信息,应该是没什么问题的。 |
|
|
地下室#
发布于: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,但是我愿意买分相送,谢谢,非常谢谢!!!!!!!!!!!! |
|
5楼#
发布于:2003-08-06 18:54
我做的确实是非pnp的ISA板卡,我用INF和用手工修改注册表没什么差别吧??DDK也是这么说的
我又看了DDK的文档,好象说是还和enum\\boot\\有点什么关系是不是啊? 我在这个问题上已经折腾了一个礼拜了,把书都翻烂了,还把DDK自带的例程看了一遍,但是还没有解决,是不是什么地方出错了!!希望大家慈悲为怀,我一定非常非常感谢,真的非常感谢了!!! 非常感谢!!! [编辑 - 8/6/03 by CKCKCK] |
|
6楼#
发布于:2003-08-06 18:58
不好意思,由于我是下班后在网吧上网,所以带了U盘但是不能用,所以这里只能简单地大概地说一哈 很佩服的精神! 你这样试试:把你的硬件资源信息irq,port放在registry\\machine\\system\\..controlset\\services\\isa\\Devices\\IsaDevice\\0下,我用DS写的驱动,我是放在这个路径下的! |
|
|
7楼#
发布于:2003-08-06 19:20
那我的查询的路径也跟着变了好不好?
rtlrequeryregistryvalue(.....service,subpath,table,null,null) 虽然我真有点怀疑是不是真的把subpath变一下就可以,但我明天上班做实验希望能成功啊,谢谢你!!! 主要是老板图便宜,所以数据采集卡的接口板全买的带DIP的ISA 再次感谢!!! |
|
8楼#
发布于:2003-08-06 19:23
那我的查询的路径也跟着变了好不好? 我也不能保证能一定成功,试一下吧,不行再找别的原因,祝你好运! |
|
|
9楼#
发布于:2003-08-06 19:29
好!!!明天要是不成功给你10分,要是成功了,给你50分(现在好象不能给分了) |
|
10楼#
发布于:2003-08-06 21:16
资源信息我一般用应用程序写到注册表,然后在驱动中到同样的路径下读出来就可以了,用几个注册表读写函数就ok了。
关于路径,由于设备需要在service中建立自己的服务,并且由此调入驱动,所以一般就把资源信息写在对应服务键下,如果有多个设备,则需要建立子键。 |
|
|
11楼#
发布于:2003-08-07 21:26
谢谢大家,我的问题已经解决了,虽然和你们说的不相关,主要是我自己粗心造成的,谢谢大家
所以我今天上来就是想给分的,但是找不到怎么给分 zydcat20分,libin230920分,还有谁能告诉我该怎么给分我就再给5分 谢谢大家!!! 顺便告诉大家一个我才发现的事情,原来系统在启动的时候先找ENUM下的设备,如果是PNP的,就直接加载服务就可以了,如果是非PNP的,就在BOOT下面加载服务,谢谢大家,希望不要再走我的老路了呵呵 我现在这里的给分和改分的按纽都不见了!! [编辑 - 8/7/03 by CKCKCK] |
|
12楼#
发布于:2003-08-08 12:38
你已经给分了。只能给一次分。 |
|