当前位置: 代码迷 >> 驱动开发 >> windows驱动中READ_REGISTER_ULONG返回0xffffffff解决方案
  详细解决方案

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

热度:100   发布时间:2016-04-28 11:20:41.0
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……
  相关解决方案