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

X86主板驱动开发:使用DDK函数读写主板芯片组寄存器出错解决思路

2012-04-11 
X86主板驱动开发:使用DDK函数读写主板芯片组寄存器出错使用AMD的最新X86 APU做驱动开发:使用DDK函数读写主

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 希望可以把您的经验发给小弟一份 小弟现在遇到同样问题了

热点排行