yaj526
驱动牛犊
驱动牛犊
  • 注册日期2001-09-24
  • 最后登录
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1328回复:1

dazzy,mansd谢谢你们的关于并口驱动的建议.

楼主#
更多 发布于:2001-10-26 09:42
是的,要简单点,只要能直接对并口进行读写操作就可以了.最好是有源代码,有的话,发给我吧.yiaijun@sbell.com.cn.谢谢

最新喜欢:

stoneyrstoney...
雨人
dazzy
驱动中牛
驱动中牛
  • 注册日期2001-03-23
  • 最后登录2008-08-12
  • 粉丝1
  • 关注0
  • 积分0分
  • 威望10点
  • 贡献值1点
  • 好评度10点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2001-10-30 13:17
借助于并口驱动(ms提供),写一个驱动,在你的驱动里如此做:
1.调用IoGetDeviceObjectPointer()得到objectname为\Device\ParallelPort0的deviceobject.

2.调用IoBuildDeviceIoControlRequest()建立一个IRP,其中的IoControlCode为IOCTL_INTERNAL_GET_PARALLEL_PORT_INFO,DeviceObject为取得的deviceobject,OutputBuffer为指向PARALLEL_PORT_INFORMATION的pointer,这样你就取得了并口的相关信息,比如端口号,其中PARALLEL_PORT_INFORMATION的Controller为并口的端口号translated后的基地址,将此地址保存起来。此值可以传入READ_PORT_UCHAR(或者WRITE_PORT_UCHAR)里进行操作。
 而PARALLEL_PORT_INFORMATION的OriginalController得低四位为并口的原始断口号,对于LPT1为0X378.

3.至于对端口读写,你只需要在需要的时候调用READ_PORT_UCHAR或WRITE_PORT_UCHAR.

4.这样做,使得代码显得更好一些。用不到在代码里指定0X378等.
游客

返回顶部