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
[解决办法]