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

提问:关于nonpnp isa

楼主#
更多 发布于:2003-07-31 18:02
我现在在做nonpnp的ISA板卡驱动,是VC6+DDK,我开始只是做了个框架,驱动程序能找到,设备管理器里面也有了,还说在正常运转中,资源一栏也有,注册表也添加了

但是问题是每次加上资源申请子程序就出现了错误,错误代码说找不到这样一个设备,现在该怎么办呢,

请问如何才能把物理设备和驱动程序联系起来,特别是在毫无特征的利用跳线的ISA板卡上,是不是申请了资源成功以后就算是识别了物理设备了???

我现在把我的分全部交出来,希望师兄们给点指点,我不胜感激!!!!!

谢谢
libin2309
驱动大牛
驱动大牛
  • 注册日期2002-11-20
  • 最后登录2005-12-29
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-08-01 09:24
资源申请成功,你就可以操作硬件了!这是没有问题的,你想说的是什么意思,说的清楚点
我是一只小小鸟,永远也飞也飞不高,但我永远在飞!
CKCKCK
驱动牛犊
驱动牛犊
  • 注册日期2003-07-01
  • 最后登录2006-11-09
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望2点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-08-01 18:18
工具:DDK+VC6+WIN2K
设备:带DIP跳线的ISA板卡
程序:单层驱动,单个设备

事情真是越来越复杂了

1。我搭好一个程序框架,能读能写
2。写了INF文件,手工安装,在设备管理器里面告诉我工作正常,包括资源也使用得很好一样

当我决心和真实硬件打交道的时候,问题出现了:

3。加入了程序模块,核心是IoReportDetectedDevice,设备管理器里出现了黄色的感叹号,错误代码31,意思是无法加载驱动
4。于是加了个ADDDEVICE例程,结果发现并没有调用它
5。上次那个朋友说安装时写注册表,然后OS启动时读注册表,然后申请资源,申请成功就行了,于是调IoGetDeviceProperty去查询我用INF写在注册表里的信息,就BSD!错误代码C000000E,意思是没有这样的设备,只好去掉第5步的修改
6,于是在IoReportDetectedDevice前面加了个IoReportResourceForDetection,其中PCM_RESOURCE_LIST为NULL,只是实验性地试一试,结果在安装时就出现STATUS_INVALID_IMAGE_NOT_MZ错误,说IMAGE文件格式错误,所以无法加载我的驱动程序,硬重启后又BSD!调试错误代码为C000026C,意思是无法载入驱动程序,我看了看注册表,该有驱动地方的都有驱动啊,怎么可能无法载入呢?

好现象是在安全模式下进入,自动提示发现新硬件,在控制面板里面对未知设备的程序更新(错误代码1),windows2000自动就找到了我的INF安装文件,说这个最匹配,错误原因可能是由于它在注册表中没有发现此设备的 ConfigFlags 值,出现此情况常常是因为 Windows 2000 已枚举了此设备,但没有找到关联的 .inf 文件,我很高兴,于是卸载程序,重新进入正常模式,结果什么都没有发生,安装以后还是BSD

7。于是到了厕所抽烟,感觉是一直以来要不然没设备,要不然没驱动,两个就是没能联系到一起,帮助文档上说是IO管理器如果发现有匹配的驱动给分配给该设备,问题是我该告诉IO manager关于ISA的什么呢,不就是什么资源啊厂商啊版本号啊接口啊驱动是谁啊。。。但是物理设备到底是什么它还是不知道,怎么能让IO管理器知道呢

驱动实在让人高兴不起来

提问:
到底问题在什么地方??????????????????
STATUS_INVALID_IMAGE_NOT_MZ错误到底是怎么引起的,什么意思啊?!?!
非常感谢

附:调试错误代码
Unknown bugcheck code (c000026c)
Unknown bugcheck description
Arguments:
Arg1: e12c4ea8
Arg2: c000012f
Arg3: 00000000
Arg4: 00000000

Debugging Details:
------------------
IMAGE_NAME:  one.sys

MODULE_NAME:  one

DEFAULT_BUCKET_ID:  DRIVER_FAULT

BUGCHECK_STR:  0xC000026C

LAST_CONTROL_TRANSFER:  from 8042c068 to 80452e70

STACK_TEXT:  
WARNING: Stack unwind information not available. Following frames may be wrong.
f081e80c 8042c068 00000003 00000000 00000100 nt!DbgBreakPointWithStatus+0x4
f081eb94 80482c2a 00000001 e12c4ea8 c000012f nt!KeBugCheckEx+0x154
f081f02c 804c8a9b c000026c 00000002 00000001 nt!MmAdjustWorkingSetSize+0xbe0
f081f1a0 8048cf4e c000026c 00000002 00000001 nt!ExRaiseDatatypeMisalignment+0x69
f081f210 804c8ec9 c000026c 00000002 00000001 nt!ExRaiseHardError+0x12e
f081f278 80461691 c000026c 00000002 00000001 nt!ExRaiseDatatypeMisalignment+0x497
f081f298 ffffffff f081f2ac 80461691 00000088 nt!ExReleaseResourceForThread+0xbd5
804095d8 00000000 8044c721 00000000 00000000 0xffffffff
游客

返回顶部