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

请高手们帮帮我~~~~~~~~~~~~~~~

楼主#
更多 发布于:2004-06-06 21:04
例如一块D/A卡的驱动:
应用程序中首先得到卡的基地址,然后就可以对卡进行读写操作,例如,_outpw(BaseAddress+0x01,data);
那么驱动程序中的DispatchRead或者DispatchWrite例程又该做点什么呢?
真的糊涂了,请各位帮帮忙!先谢谢了。
明白了马上给分!
顺便问一下,加载驱动程序有几种方法呢?哪种方便一点呢?
ABC初学 那里没人回答我,只能来这里问各位高手了,实在不好意思。请各位给我讲讲吧~~~~~~~~~~

 :(
mihopaul
驱动牛犊
驱动牛犊
  • 注册日期2002-10-01
  • 最后登录2009-10-14
  • 粉丝0
  • 关注0
  • 积分32分
  • 威望13点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-06-07 09:52
例如一块D/A卡的驱动:
应用程序中首先得到卡的基地址,然后就可以对卡进行读写操作,例如,_outpw(BaseAddress+0x01,data);
那么驱动程序中的DispatchRead或者DispatchWrite例程又该做点什么呢?
真的糊涂了,请各位帮帮忙!先谢谢了。


明白了马上给分!
顺便问一下,加载驱动程序有几种方法呢?哪种方便一点呢?
ABC初学 那里没人回答我,只能来这里问各位高手了,实在不好意思。请各位给我讲讲吧~~~~~~~~~~

 :(



好奇,
modernhill
驱动小牛
驱动小牛
  • 注册日期2004-05-12
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分98分
  • 威望278点
  • 贡献值0点
  • 好评度172点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-06-08 21:04
我也奇怪,可是我看到有人做的驱动确实在这么做了,所以我就糊涂了,2000不能实现对端口的直接读写吗?应该可以吧?那么这样的驱动到底还有什么事好做呢?:(
seaquester
驱动大牛
驱动大牛
  • 注册日期2002-05-22
  • 最后登录2016-06-16
  • 粉丝0
  • 关注0
  • 积分500分
  • 威望115点
  • 贡献值0点
  • 好评度107点
  • 原创分0分
  • 专家分52分
地板#
发布于:2004-06-09 08:13
我也奇怪,可是我看到有人做的驱动确实在这么做了,所以我就糊涂了,2000不能实现对端口的直接读写吗?应该可以吧?那么这样的驱动到底还有什么事好做呢?:(


NT/2000/XP不能在应用程序中直接读写端口(9x可以)。这些工作一般放到Driver作,所以DispatchRead或者DispatchWrite例程该做什么就清楚了吧?
八风舞遥翩,九野弄清音。 鸣高常向月,善舞不迎人。
yyhabc
驱动小牛
驱动小牛
  • 注册日期2003-01-06
  • 最后登录2013-03-18
  • 粉丝0
  • 关注0
  • 积分327分
  • 威望47点
  • 贡献值0点
  • 好评度21点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-06-09 10:01
你用些端口的调用,其实最后还是到driver里去,系统会见它转换成相应的控制码。就看driver能不能识别这个控制码了。
modernhill
驱动小牛
驱动小牛
  • 注册日期2004-05-12
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分98分
  • 威望278点
  • 贡献值0点
  • 好评度172点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-06-09 11:39
我看到一个程序是这么做的,而且能够正常运行:
static unsigned short DA;
#define DA0Word   ((unsigned short)(DA+0x0000))
#define DA1Word   ((unsigned short)(DA+0x0002))
hDevice=CreateFile("\\\\.\\drivername",GENERIC_READ|GENERIC_WRITE, 0,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
status=ReadFile(hDevice,&DA,inCount,&bR,NULL);
_outpw(DA0Word,dacout1);
_outpw(DA1Word,dacout2);
是我只看到了表面呢?还是有其他的原因?请各位指点指点。。。
AllenZh
驱动老牛
驱动老牛
  • 注册日期2001-08-19
  • 最后登录2015-11-27
  • 粉丝19
  • 关注10
  • 积分1316分
  • 威望2387点
  • 贡献值7点
  • 好评度321点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2004-06-09 22:49
我看到一个程序是这么做的,而且能够正常运行:
static unsigned short DA;
#define DA0Word   ((unsigned short)(DA+0x0000))
#define DA1Word   ((unsigned short)(DA+0x0002))
hDevice=CreateFile("\\.\drivername",GENERIC_READ|GENERIC_WRITE, 0,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
status=ReadFile(hDevice,&DA,inCount,&bR,NULL);
_outpw(DA0Word,dacout1);
_outpw(DA1Word,dacout2);
是我只看到了表面呢?还是有其他的原因?请各位指点指点。。。
 

是9x下吧
1,承接Windows下驱动/应用开发 2,本人原创虚拟鼠标/键盘,触摸屏,虚拟显卡,Mirror驱动,XP无盘的SCSI虚拟磁盘驱动等 3,windows下有尝技术服务(包括BUG调试,员工培训等) 欢迎深圳和海外企业联系.msn:mfczmh@sina.com
modernhill
驱动小牛
驱动小牛
  • 注册日期2004-05-12
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分98分
  • 威望278点
  • 贡献值0点
  • 好评度172点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2004-06-09 23:09
是2000下:(
_outpw(DA0Word,dacout1);这种语句在2000下一定不能用吗?
如果能用的话,还要怎样做?
因为我看到过的一个程序确实这么做了。。。
AllenZh
驱动老牛
驱动老牛
  • 注册日期2001-08-19
  • 最后登录2015-11-27
  • 粉丝19
  • 关注10
  • 积分1316分
  • 威望2387点
  • 贡献值7点
  • 好评度321点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2004-06-10 11:23
2000下应用程序不不能直接调用,驱动中我没有这样使用过,我是使用in、out指令来完成的
1,承接Windows下驱动/应用开发 2,本人原创虚拟鼠标/键盘,触摸屏,虚拟显卡,Mirror驱动,XP无盘的SCSI虚拟磁盘驱动等 3,windows下有尝技术服务(包括BUG调试,员工培训等) 欢迎深圳和海外企业联系.msn:mfczmh@sina.com
seaquester
驱动大牛
驱动大牛
  • 注册日期2002-05-22
  • 最后登录2016-06-16
  • 粉丝0
  • 关注0
  • 积分500分
  • 威望115点
  • 贡献值0点
  • 好评度107点
  • 原创分0分
  • 专家分52分
9楼#
发布于:2004-06-10 11:29
是2000下:(
_outpw(DA0Word,dacout1);这种语句在2000下一定不能用吗?
如果能用的话,还要怎样做?
因为我看到过的一个程序确实这么做了。。。
 


可能是将_outpw重新定义了。
八风舞遥翩,九野弄清音。 鸣高常向月,善舞不迎人。
modernhill
驱动小牛
驱动小牛
  • 注册日期2004-05-12
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分98分
  • 威望278点
  • 贡献值0点
  • 好评度172点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2004-06-10 16:07
能不能说的具体点儿?怎样重新定义才能做到这点??
rain_pot
驱动牛犊
驱动牛犊
  • 注册日期2003-12-20
  • 最后登录2004-12-16
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2004-06-16 19:01
哈!我刚解决了一个这样的问题,只要将BASEADDRESS做为参数直接传给READ、WRITE函数即可。
沙漠玫瑰
modernhill
驱动小牛
驱动小牛
  • 注册日期2004-05-12
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分98分
  • 威望278点
  • 贡献值0点
  • 好评度172点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2004-06-18 00:30
楼上的兄弟,其他的不需要做什么工作了吗?
游客

返回顶部