阅读:1568回复:5
deviceiocontrol的疑惑
做pci应用程序时,用deviceiocontrol进行io操作,我怎么告诉它io基地址呢?
另外,如果用windriver来作驱动,那怎么把windriver生成的程序脱离windriver运行? 请指点,多谢! |
|
|
沙发#
发布于:2004-08-20 22:46
用deviceiocontrol进行io操作,需要给谁告诉基地址呀,
ISA设备的口地址和中断是人工设定的, PCI设备的口地址和中断是系统自动分配的,你需要的话,可以读出来,然后进行相应的操作. |
|
板凳#
发布于:2004-08-23 14:07
应该利用什么方法读
|
|
地板#
发布于: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 |
|
|
地下室#
发布于:2004-08-23 15:55
哦,多谢,但我怎么得到这个基地址呢?
我在向导中生成了2个控制函数,分别用来读写,我设了几个io基地址,那我怎么用这两个函数去对io基地址读写操作?也就是说,我怎么告诉deviceiocontrol去对哪个io基地址操作? 我可以在设备管理器看到这几个基地址。不会靠手工输入吧? :( |
|
|
5楼#
发布于:2004-08-24 08:52
我也想知道
|
|