relaxs
驱动牛犊
驱动牛犊
  • 注册日期2003-03-21
  • 最后登录2005-03-08
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1568回复:5

deviceiocontrol的疑惑

楼主#
更多 发布于:2004-08-20 16:26
做pci应用程序时,用deviceiocontrol进行io操作,我怎么告诉它io基地址呢?

另外,如果用windriver来作驱动,那怎么把windriver生成的程序脱离windriver运行?

请指点,多谢!
想做就做
Sundsea
驱动老牛
驱动老牛
  • 注册日期2003-05-06
  • 最后登录2012-06-05
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望35点
  • 贡献值0点
  • 好评度15点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-08-20 22:46
用deviceiocontrol进行io操作,需要给谁告诉基地址呀,
ISA设备的口地址和中断是人工设定的,
PCI设备的口地址和中断是系统自动分配的,你需要的话,可以读出来,然后进行相应的操作.
wbinw
驱动牛犊
驱动牛犊
  • 注册日期2004-07-04
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-08-23 14:07
应该利用什么方法读
zhouandraw
驱动牛犊
驱动牛犊
  • 注册日期2004-03-19
  • 最后登录2005-10-21
  • 粉丝0
  • 关注0
  • 积分6分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-08-23 15:20
在驱动程序中编写Device IO Control的控制代码,比如说是WRITE、READ之类的,形如:IOCTL_PCI_WRITE;
在应用程序中使用DeviceIoControl函数,比如读某个地址addr的数据放到变量data中:
    DeviceIoControl(hDevice,
                    IOCTL_PCI_READ,
                    &addr,
                    sizeof(addr),
                    &data,
                    512,
                    &nOutput,
                    NULL);
函数具体使用可以查阅MSDN
扒皮周
relaxs
驱动牛犊
驱动牛犊
  • 注册日期2003-03-21
  • 最后登录2005-03-08
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-08-23 15:55
哦,多谢,但我怎么得到这个基地址呢?
我在向导中生成了2个控制函数,分别用来读写,我设了几个io基地址,那我怎么用这两个函数去对io基地址读写操作?也就是说,我怎么告诉deviceiocontrol去对哪个io基地址操作?

我可以在设备管理器看到这几个基地址。不会靠手工输入吧? :(
想做就做
wbinw
驱动牛犊
驱动牛犊
  • 注册日期2004-07-04
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-08-24 08:52
我也想知道
游客

返回顶部