X86主板驱动开发:使用DDK函数读写主板芯片组寄存器出错
使用AMD的最新X86 APU做驱动开发:使用DDK函数读写主板芯片组寄存器出错,请教
安装了XP+SP3,使用200的DDK进行驱动开发,
对于读写I/O映射空间的以下函数
8位输入:UCHAR READ_PORT_UCHAR((PUCHAR)port)
16位输入:USHORT READ_PORT_USHORT((PUSHORT)port)
32位输入:ULONG READ_PORT_ULONG((PULONG)port)
8位输出:WRITE_PORT_UCHAR((PUCHAR)port,(UCHAR)value)
16位输出:WRITE_PORT_USHORT((PUSHORT)port,(USHORT)value)
32位输出:WRITE_PORT_ULONG((PULONG)port,(ULONG)value)
可以正常使用;
对于蜂鸣器可以操作(操作端口0x40h-0x43h和ox61h),可以通过oxCF8h和0xCFC端口读出挂载在内部PCI线上的Configuration Register区域数据。
但是如果我要读写芯片组上的寄存器{对与内存映射的空间的读写},在自己编写的驱动程序中使用READ_REGISTER_ULONG函数,在应用程序上使用DeviceIoControl调用驱动程序的READ_REGISTER_ULONG函数,在DriverMonitor软件中提示:
1853.922 Win32 RTL: RtlNtStatusToDosError(0xc0000232): No Valid Win32 Error Mapping
1853.922 Default Enter HelloDDKDispatchRoutin
1853.922 Win32 RTL: Edit ntos\rtl\generr.c to correct the problem
1853.922 Default IRP_MJ_CREATE
1853.922 Win32 RTL: ERROR_MR_MID_NOT_FOUND is being returned
1853.922 Default Leave HelloDDKDispatchRoutin
1853.922 Win32 RTL: RtlNtStatusToDosError(0xc0000232): No Valid Win32 Error Mapping
1853.922 Default Enter HelloDDKDeviceIOControl
1853.922 Win32 RTL: Edit ntos\rtl\generr.c to correct the problem
1853.922 Default Leave HelloDDKDeviceIOControl
1853.922 Win32 RTL: ERROR_MR_MID_NOT_FOUND is being returned
1853.922 Default Enter HelloDDKDeviceIOControl
1853.922 Default Leave HelloDDKDeviceIOControl
1853.938 Win32 RTL: RtlNtStatusToDosError(0xc0000232): No Valid Win32 Error Mapping
这样的信息,
请教这些对于内存映射的空间的读写的DDK函数,关于函数的参数问题,使用上要注意啥?
最好给出个实际例子
[解决办法]
直接读写IO的方法来获取PCI Config的方法,在XP以上是不被推荐的,主要是在多核cpu上有同步问题,但是一般也不会有什么问题。
如果你只想做IO操作,那么用Winio这个驱动好了,没必要自己写。具体你可以搜索一下winio
[解决办法]
楼主 问题后来如何解决的呢 小弟邮箱damoliuyunli@163.com 希望可以把您的经验发给小弟一份 小弟现在遇到同样问题了