阅读:1534回复:10
readfile 如何指定读的是pci 多个地址空间的哪个空间 (急,谢谢!)
我的PLX9054卡上有三块内存空间,分别映射为BAR0,BAR2,BAR3,其中BAR0为存储器访问寄存器,而BAR2和BAR3分别为内存空间。
请问如何在应用程序的ReadFile中区分这两块空间? 谢谢! |
|
最新喜欢:mapofl
|
沙发#
发布于:2003-07-22 22:15
区分在驱动程序中进行比较好吧?
如果要在应用程序中区分的话,好象驱动程序应该是分层的。 |
|
|
板凳#
发布于:2003-07-23 16:21
应该用DeviceIOControl,利用不同的变量传下来,
在驱动中分别进行处理。 |
|
|
地板#
发布于:2003-07-25 15:28
请grant说的再详细一些,是不是在驱动程序里要判断参数后,再选择映射空间?用哪个函数可以选择映射空间?在应用程序里使用readfile函数的话,是不是就只能对应一个空间,但readfile函数不是也可以传地址吗?那么为什么不能对这个地址作判断后在选择一个空间呢?
|
|
地下室#
发布于:2003-07-26 17:25
这些空间应该是对应用程序不透明的啊,他应该是由驱动程序来操作,用DeviceIOControl间接的来操作好一些
|
|
|
5楼#
发布于:2003-07-27 09:51
DeviceControl有好几个输入参数,在应用程序里调用DeviceIoControl(Handle, Code,
InputData, InputLength, OutputData, OutputLength, &Feedback, &Overlapped); 就会把参数传递到驱动程序中的DeviceControl 在驱动程序对code进行判断,对相应的par读写,这是就需要用KMemoryRange映射要访问的空间,然后 再读写,建议你看一下water oney的书 |
|
6楼#
发布于:2003-07-28 09:32
对不起,几天没来,没看到你在问我。
谢谢楼上的回答。是这样的。 用DeviceIOControl可以方便地进行各种选择, 而用ReadFile就不行。 |
|
|
7楼#
发布于:2003-07-28 09:54
我刚刚试验过使用DeviceIOcontrol的办法。
确实可行。 自己先定义控制代码,然后通过这个代码在应用程序和驱动程序之间传递控制命令。 |
|
|
8楼#
发布于:2003-07-28 09:54
谢谢各位关注,我怎么给分?就10分了
|
|
|
9楼#
发布于:2003-07-28 10:39
在每个回复的帖子下面是不是都有给分按钮的?
|
|
|
10楼#
发布于:2003-07-28 11:31
你怎么都给我了...
别人也有帮忙答呀。 应该大家分一下的。 |
|
|