modernhill
驱动小牛
驱动小牛
  • 注册日期2004-05-12
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分98分
  • 威望278点
  • 贡献值0点
  • 好评度172点
  • 原创分0分
  • 专家分0分
阅读:1058回复:6

应用程序与驱动程序对端口的读写不同在哪里?

楼主#
更多 发布于:2004-06-04 13:55
例如一块D/A卡的驱动:
应用程序中首先得到卡的基地址,然后就可以对卡进行读写操作,例如,_outpw(BaseAddress+0x01,data);
那么驱动程序中的DispatchRead或者DispatchWrite例程需要做什么事情呢?
真的糊涂了,请各位帮帮忙!先谢谢了。
明白了马上给分!
blue215
驱动牛犊
驱动牛犊
  • 注册日期2004-01-05
  • 最后登录2005-01-20
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-06-04 15:12
_outp,_inp只能在win2000以下的系统中使用。我想是这2种函数在操作系统中的工作级别不同吧。_outpw工作在lever 3而dispatchRead,
dispatchWrite可能会对内存重新调整。
modernhill
驱动小牛
驱动小牛
  • 注册日期2004-05-12
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分98分
  • 威望278点
  • 贡献值0点
  • 好评度172点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-06-04 16:08
能不能说的具体点。。。
modernhill
驱动小牛
驱动小牛
  • 注册日期2004-05-12
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分98分
  • 威望278点
  • 贡献值0点
  • 好评度172点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-06-05 12:37
怎么没人帮帮我啊?。。。。。
blue215
驱动牛犊
驱动牛犊
  • 注册日期2004-01-05
  • 最后登录2005-01-20
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-06-05 14:40
vxd(win2000以下的windows)系统模式下允许用户程序直接访问端口即机器的内存,而在2000以后的系统wdm驱动模式下客户程序去不能直接访问,这样增强了系统的安全性,向CIH之类的通过利用VXD模式特性攻击计算机的病毒在2000下就不起作用了。但2000下要需要完成读端口的功能,这就需要做一些特殊的处理,需要了解它的内存模式,然后再做扩展。
我做过读端口的控制程序,但没写过驱动,DispatchWrite/Read的用法只是我的猜想,还请高手指点。
modernhill
驱动小牛
驱动小牛
  • 注册日期2004-05-12
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分98分
  • 威望278点
  • 贡献值0点
  • 好评度172点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-06-06 11:58
to:blue215
能不能把你做的控制程序读写端口的部分给我看看,谢谢!
modern_hill@hotmail.com
blue215
驱动牛犊
驱动牛犊
  • 注册日期2004-01-05
  • 最后登录2005-01-20
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2004-06-06 20:30
我是在98下做的,读端口的函数也就用了_outp和_inp.只是知道2000下读端口的一些原理,但没实际做过.
游客

返回顶部