阅读:1209回复:8
98下的VxD开发ISA课的设备驱动程序,急救!!
各位仁兄,大家好,
我现在开发98下的VxD开发ISA课的设备驱动程序, 遇到了很多问题,望不吝赐教,深表感谢! //---------------------------------------------------// 我是用VtoolsD的QuickVxD的向导做出框架, //----------?????-----------------------// 1.IO测试:驱动程序和VC++应用程序 测试结果:可以对并口0x378进行读写操作,正常. 但是:对要求的0x360--0x368的IO空间却不能访问 写IO时,不报错; 读IO时,总是FF. //----------?????-----------------------// 2.内存测试:驱动程序和VC++应用程序 测试结果:可以对起始地址16MB(0x1000000),64K空间的 内存段进行读写操作,正常. 但是:对要求的D000:0000--D000:FFFF空间却不能访问. 写内存时,不报错;(好像是写不进去?) 读内存时,总是随机数. //----------?????------------------------// 3.中断测试:驱动程序和VC++应用程序 测试结果:对要求的5号中断没反映,不报错(加载或是调用) 不知道的原因:由于pMyHwInt->hook()成功, 是不是5号中断传不上来? 察看PC设备使用:5号中断被未知设备使用.这是什么意思? PC机是检测到了控制卡的存在,还是没检测到? //----------?????------------------------// 4.若对D000:0000--D000:FFFF内存空间, 0x360--0x368的IO空间, 进行保护,防止其他应用程序,DOS程序, 或是windows内核占用, 请问用内存访问陷阱,IO访问陷阱的方法是否可行? 或是其他更好的办法? //----------?????------------------------// 再次感谢你能抽出宝贵的时间看我的问题,谢谢! 期待你的指点!! 我的Email:caoyg@263.net |
|
最新喜欢:zheng2...
|
沙发#
发布于:2003-03-27 13:44
1、肯定是可以访问的。读回FF就不对吗?
2、D000:0000?线性地址?物理地址? 3、ISA卡,对98来说,不知道他在不在。 4、物理内存?什么程序能占用IO空间? |
|
板凳#
发布于:2003-03-27 15:09
首先谢谢你能关注我的问题。
1。我对IO空间0x360--0x368 比如:利用VxD对0x360写入12h,操作中不报错(加载成功,命令调用成功),可是读出来的确总是FF。 2。我的D000:0000--D000:FFFF是实际的物理内存空间 我想利用静态配置内存设备的方法得到 物理起始地址:D0000,大小64K的内存的线性地址。 如此做时,应用程序可以加载成功, 但是,写内存时,不饱错,不管写入多少, 读内存,都会来的总是FF或其他,与写入的不同, 3。中断处理 测试结果:对要求的5号中断没反映,不报错(加载或是调用都成功) 若98不能识别ISA卡, 我的硬件可以产生05中断(测试时可以周期产生), 请问中断不响应,出错在哪里? 4。保护的是物理内存空间,防止VMM或是其他VxD占用 您的意思是VMM或是其他VxD不会随便访问IO空间? 请问可以用什么办法进行保护? 再次感谢您能抽出宝贵的时间看我的问题,谢谢! 期待你的指点!! |
|
|
地板#
发布于:2003-03-27 15:44
给分给的太早了吧? :D
1、都说了,读会FF不一定就是不对啊。谁知道这段IO映射了还是没有,映射的寄存器有是什么反应的。 2、把物理地址map线性地址,写线性地址 3、不响应的原因,多。怎么确定没有响应的? 4、那段内存和io是你卡用的?硬件上的ram和reg映射到物理内存和io,由硬件来实现 |
|
地下室#
发布于:2003-03-27 20:54
首先还是要谢谢您!
不过恕我愚笨,还是不太明白,望指点! 2。我确实得到了线性地址,读写内存时也是利用线性地址的指针操作, 可是就是写不进去,读出来的总是FF 您说这与我选的内存空间位于物理地址1M以下有关喜玛〉? 4。我选的内存空检和IO空间确实如您所说是硬件的映射, 我却不太明白您所说的硬件保护内存空检和IO空间的方法? 您能具体一些吗〉? 望您能再次提携小弟一把,对您深表谢意!! (由于本科毕业设计催的急) |
|
|
5楼#
发布于:2003-03-27 21:05
4、保护?我没有说可以保护啊。ISA卡上一般都有跳线来选IO地址,就是防止IO地址冲突。软件也没有办法“占用”IO空间。 |
|
6楼#
发布于:2003-03-27 21:19
首先还是要谢谢您!
请问第二个问题,您认为是什么原因? 第四个问题,内存空间的软件编程保护有可能实现吗? 谢谢! |
|
|
7楼#
发布于:2003-03-28 09:53
你要访问,map他。至于不让别人访问,好像是不行。
第2个,原因也多啊,这段内存映射你的卡上的ram,也可能你的程序的问题等等。 |
|
8楼#
发布于:2003-03-28 13:40
谢谢!
我再用SoftICE调试。 还望arthurtu以后能多多提携小弟! |
|
|