阅读:1762回复:1
请帮忙,谢谢!
我在写一个语音卡的Win98下驱动程序毕业设计遇到了一个问题,很关键,捆扰了很久,在此,特向站长求教!
问题大概市这样的: 主要是根据调节语音卡上的物理起始地址,读出卡中的某标志积存器的值,来检测卡是否被系统识别。然后,往卡中写入数据,来实现对语音卡的控制。我的做法大概是,通过Ring3下的DeviceIOCtrol()函数将物理起始地址传入VXD的P->dioc_inbuf里面,再通过VXD的MapPhysToLinear()转化成线形地址返回给Ring3下的应用程序,然后在应用程序下,根据返回的线形地址在GDT中找出在内存中的段基值,然后根据此段基值来实现对内存的直接读写! 但是遇到的问题是读不出内存里的值,或是不正确,有时甚至使系统直接重新启动。 我直接用SOFT-ICE的Peek命令却可以直接读出正确的语音卡标志积存器值,所以恳请站长能够提供通过VXD实现对内存进行读写的代码,而不是通过中断方式在应用程序断实现Ring3到Ring0的转换而实现读写那种! 急用,请帮忙,谢谢! |
|
沙发#
发布于:2001-05-15 19:20
站上有那么多文章,随便找一个就行
|
|
|