soulover
驱动牛犊
驱动牛犊
  • 注册日期2008-07-26
  • 最后登录2013-11-12
  • 粉丝0
  • 关注0
  • 积分27分
  • 威望185点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2568回复:4

DriverWorks如何直接访问IO?

楼主#
更多 发布于:2009-10-10 09:30
有没有类似于DDK操作端口的函数( WRITE_PORT_UCHAR(0x378,0))???


DriverWorks中访问端口用KIoRange,但是它首先初始化为基地址的,不能直接访问固定地址!
tqijin
驱动小牛
驱动小牛
  • 注册日期2006-07-04
  • 最后登录2013-11-21
  • 粉丝3
  • 关注0
  • 积分31分
  • 威望1060点
  • 贡献值1点
  • 好评度14点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2009-10-11 10:50
楼主理解可能有点偏颇,
其实DDK操作端口的函数( WRITE_PORT_UCHAR(0x378,0))
也是基地址算起偏移地址为0x378的访问
soulover
驱动牛犊
驱动牛犊
  • 注册日期2008-07-26
  • 最后登录2013-11-12
  • 粉丝0
  • 关注0
  • 积分27分
  • 威望185点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2009-10-12 08:48
引用第1楼tqijin于2009-10-11 10:50发表的  :
楼主理解可能有点偏颇,
其实DDK操作端口的函数( WRITE_PORT_UCHAR(0x378,0))
也是基地址算起偏移地址为0x378的访问

不对吧 WRITE_PORT_UCHAR是直接地址啊~
tqijin
驱动小牛
驱动小牛
  • 注册日期2006-07-04
  • 最后登录2013-11-21
  • 粉丝3
  • 关注0
  • 积分31分
  • 威望1060点
  • 贡献值1点
  • 好评度14点
  • 原创分0分
  • 专家分0分
地板#
发布于:2010-08-26 18:33
回 2楼(soulover) 的帖子
驱动的普通读写都是无法真正操作物理地址的,
个人认为还是I/O映射端口的偏移地址
The WRITE_PORT_UCHAR macro writes a byte to the specified port address.
VOID
  WRITE_PORT_UCHAR(
    IN PUCHAR  Port,
    IN UCHAR  Value
    );
Parameters
Port
Pointer to the port, which must be a mapped memory range in I/O space.
Value
Specifies a byte to be written to the port.
steven__xu
驱动牛犊
驱动牛犊
  • 注册日期2004-08-24
  • 最后登录2013-09-03
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望20点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2013-09-03 16:11
如果想用CPU的in、out指令,直接写_in(), _out()就可以吧
游客

返回顶部