oyhaiou
游客
游客
阅读:1762回复:1

请帮忙,谢谢!

楼主#
更多 发布于:2001-05-15 18:10
我在写一个语音卡的Win98下驱动程序毕业设计遇到了一个问题,很关键,捆扰了很久,在此,特向站长求教!
    问题大概市这样的:
    主要是根据调节语音卡上的物理起始地址,读出卡中的某标志积存器的值,来检测卡是否被系统识别。然后,往卡中写入数据,来实现对语音卡的控制。我的做法大概是,通过Ring3下的DeviceIOCtrol()函数将物理起始地址传入VXD的P->dioc_inbuf里面,再通过VXD的MapPhysToLinear()转化成线形地址返回给Ring3下的应用程序,然后在应用程序下,根据返回的线形地址在GDT中找出在内存中的段基值,然后根据此段基值来实现对内存的直接读写!
    但是遇到的问题是读不出内存里的值,或是不正确,有时甚至使系统直接重新启动。
    我直接用SOFT-ICE的Peek命令却可以直接读出正确的语音卡标志积存器值,所以恳请站长能够提供通过VXD实现对内存进行读写的代码,而不是通过中断方式在应用程序断实现Ring3到Ring0的转换而实现读写那种!
  急用,请帮忙,谢谢!
znsoft
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2023-10-25
  • 粉丝300
  • 关注6
  • 积分910分
  • 威望14796点
  • 贡献值7点
  • 好评度2410点
  • 原创分5分
  • 专家分100分
  • 社区居民
  • 最爱沙发
  • 社区明星
沙发#
发布于:2001-05-15 19:20
站上有那么多文章,随便找一个就行
http://www.zndev.com 免费源码交换网 ----------------------------- 软件创造价值,驱动提供力量! 淡泊以明志,宁静以致远。 ---------------------------------- 勤用搜索,多查资料,先搜再问。
游客

返回顶部