首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 驱动开发 >

windows驱动中READ_REGISTER_ULONG返回0xffffffff解决方案

2012-02-14 
windows驱动中READ_REGISTER_ULONG返回0xffffffff使用wdm开发一个windowsxp下的pcie驱动,遇到个问题:驱动

windows驱动中READ_REGISTER_ULONG返回0xffffffff
使用wdm开发一个windowsxp下的pcie驱动,遇到个问题:
驱动被加载的时候,将bar0映射后,使用READ_REGISTER_ULONG读取bar0一个几个寄存器的值,可以返回正确的值;驱动加载完毕后,用户层调用驱动接口,这时在驱动里使用READ_REGISTER_ULONG读取bar0的同一个寄存器,就始终返回0xffffffff了
求解!

[解决办法]
--
访问PCI设备,用系统提供的函数可获得其配置空间的内容,其中包括DeviceId, VendorId, 还有6个寄存器地址,但这个地址是不能直接访问的,必须将其转换,用HalTranslateBusAddress,如果寄存器要求映射到内存空间,还要调用MmMapIoSpace将其映射到内存空间。这样就可以直接访问了。

----------------------------
READ_REGISTER_ULONG
[解决办法]

探讨

--
访问PCI设备,用系统提供的函数可获得其配置空间的内容,其中包括DeviceId, VendorId, 还有6个寄存器地址,但这个地址是不能直接访问的,必须将其转换,用HalTranslateBusAddress,如果寄存器要求映射到内存空间,还要调用MmMapIoSpace将其映射到内存空间。这样就可以直接访问了。

----------------------------
RE……

热点排行