howking
驱动牛犊
驱动牛犊
  • 注册日期2002-12-04
  • 最后登录2003-07-20
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1209回复:8

98下的VxD开发ISA课的设备驱动程序,急救!!

楼主#
更多 发布于:2003-03-27 09:48
各位仁兄,大家好,
我现在开发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

最新喜欢:

zheng2002zheng2...
相信我们都是在经历黑暗,曙光就在眼前! 相信自己,坚持就是胜利!
arthurtu
驱动巨牛
驱动巨牛
  • 注册日期2001-11-08
  • 最后登录2020-12-19
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望161点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
  • 社区居民
沙发#
发布于:2003-03-27 13:44
1、肯定是可以访问的。读回FF就不对吗?
2、D000:0000?线性地址?物理地址?
3、ISA卡,对98来说,不知道他在不在。
4、物理内存?什么程序能占用IO空间?
howking
驱动牛犊
驱动牛犊
  • 注册日期2002-12-04
  • 最后登录2003-07-20
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于: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空间?
请问可以用什么办法进行保护?

再次感谢您能抽出宝贵的时间看我的问题,谢谢!
期待你的指点!!
相信我们都是在经历黑暗,曙光就在眼前! 相信自己,坚持就是胜利!
arthurtu
驱动巨牛
驱动巨牛
  • 注册日期2001-11-08
  • 最后登录2020-12-19
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望161点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
  • 社区居民
地板#
发布于:2003-03-27 15:44
给分给的太早了吧? :D
1、都说了,读会FF不一定就是不对啊。谁知道这段IO映射了还是没有,映射的寄存器有是什么反应的。
2、把物理地址map线性地址,写线性地址
3、不响应的原因,多。怎么确定没有响应的?
4、那段内存和io是你卡用的?硬件上的ram和reg映射到物理内存和io,由硬件来实现
howking
驱动牛犊
驱动牛犊
  • 注册日期2002-12-04
  • 最后登录2003-07-20
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-03-27 20:54
首先还是要谢谢您!
不过恕我愚笨,还是不太明白,望指点!

2。我确实得到了线性地址,读写内存时也是利用线性地址的指针操作,
可是就是写不进去,读出来的总是FF
您说这与我选的内存空间位于物理地址1M以下有关喜玛〉?
4。我选的内存空检和IO空间确实如您所说是硬件的映射,
我却不太明白您所说的硬件保护内存空检和IO空间的方法?
您能具体一些吗〉?

望您能再次提携小弟一把,对您深表谢意!!
(由于本科毕业设计催的急)
相信我们都是在经历黑暗,曙光就在眼前! 相信自己,坚持就是胜利!
arthurtu
驱动巨牛
驱动巨牛
  • 注册日期2001-11-08
  • 最后登录2020-12-19
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望161点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
  • 社区居民
5楼#
发布于:2003-03-27 21:05

4、保护?我没有说可以保护啊。ISA卡上一般都有跳线来选IO地址,就是防止IO地址冲突。软件也没有办法“占用”IO空间。
howking
驱动牛犊
驱动牛犊
  • 注册日期2002-12-04
  • 最后登录2003-07-20
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2003-03-27 21:19
首先还是要谢谢您!

请问第二个问题,您认为是什么原因?
第四个问题,内存空间的软件编程保护有可能实现吗?

谢谢!
相信我们都是在经历黑暗,曙光就在眼前! 相信自己,坚持就是胜利!
arthurtu
驱动巨牛
驱动巨牛
  • 注册日期2001-11-08
  • 最后登录2020-12-19
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望161点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
  • 社区居民
7楼#
发布于:2003-03-28 09:53
你要访问,map他。至于不让别人访问,好像是不行。
第2个,原因也多啊,这段内存映射你的卡上的ram,也可能你的程序的问题等等。
howking
驱动牛犊
驱动牛犊
  • 注册日期2002-12-04
  • 最后登录2003-07-20
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2003-03-28 13:40
谢谢!
我再用SoftICE调试。
还望arthurtu以后能多多提携小弟!
相信我们都是在经历黑暗,曙光就在眼前! 相信自己,坚持就是胜利!
游客

返回顶部