hejoin
驱动小牛
驱动小牛
  • 注册日期2001-10-19
  • 最后登录2012-03-08
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望51点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
阅读:1252回复:3

不知道高手是否愿意出招?

楼主#
更多 发布于:2002-03-31 17:11
其实问题很简单,就是端口读写的老问题!
在一个非设备驱动中(没有实在的外设),不用分配资源。但是需要在驱动程序对0X378这个端口地址(LPT1并口)进行读写操作。
pdx->PortLength = 3;
pdx->PortStartAddress.QuadPart = 0x3bc;

pdx->PortBase = (PUCHAR)MmMapIoSpace( pdx->PortStartAddress, pdx->PortLength, MmNonCached);

KdPrint((DRIVERNAME \" 端口信息 %x\",pdx->PortBase));

转换以后,打算用 HAL 函数来读写,发现一个问题
用 READ_REGISTER_UCHAR 似乎 每次读写的数据能够对上号,也就是写入以后读取,数据一致,但是,
如果采用 READ_PORT_UCHAR,根本就不对头,

问题在那里?是不是采用一种方法以后,还需要把寄存器的数据通过XX方法\"发送到\"端口?还是那里做得不对?
那第二种方法不对的地方在哪里呢?
能否麻烦高手,您帮我把这段程序完成?分数奉送
恒坚电器([url]http://www.hejoin.com[/url])
Tom.Cat
禁止发言
禁止发言
  • 注册日期2001-10-10
  • 最后登录2019-07-29
  • 粉丝1
  • 关注0
  • 积分-53792分
  • 威望197411点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
  • 社区居民
沙发#
发布于:2002-03-31 19:36
用户被禁言,该主题自动屏蔽!
hejoin
驱动小牛
驱动小牛
  • 注册日期2001-10-19
  • 最后登录2012-03-08
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望51点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-03-31 19:48
我不需要端口资源阿!
否则不是和并口重叠了吗?安装不行哦,
没有在inf中提出,我在adddevice 中,指定了这个资源
就是上面说的,关键的问题在后面,我已经在register中读写了得到了争取的结果,但是没有反映到并口,这个端口上面去
还请出手!
恒坚电器([url]http://www.hejoin.com[/url])
hejoin
驱动小牛
驱动小牛
  • 注册日期2001-10-19
  • 最后登录2012-03-08
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望51点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-03-31 22:25
奇怪!真的奇怪!
这个读写问题在于 pdx->PortBase
采用端口读写方式,可以,但是 只有当 pdx->PortBase 为 XX03BC的格式才可以,其它数据全部不行,真很奇怪呢!
弄不明白,那个大哥帮忙弄清楚怎么回事?
是不是 内存映射问题?用的是标准函数阿!
应该也映射过的,否则,不会出现 XXX3BC 模样的数据,

奇怪.......真是丈二和尚。。。
恒坚电器([url]http://www.hejoin.com[/url])
游客

返回顶部