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

iwillbeback008 iwillbeback008 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
使用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函数,关于函数的参数问题,使用上要注意啥?
最好给出个实际例子
...全文
评论 6
收藏 已收藏
分享
返回顶部