阅读:1173回复:0
带DIP跳线的ISA板卡 DDK+VC6+WIN2K 有兴趣的就请进来看一看哈!!!
工具: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 |
|