我有一些Linux代码通过使用inb(),outb(),inl()等低级i / o函数从主板收集温度,电压和风扇速度来监控我们的硬件。
我的挑战是将该代码移植到Windows下作为一个简单的控制台应用程序运行。但我很困惑Win32(或.NET)提供的功能允许我访问直接内存映射端口。
我也不想编写系统驱动程序。
我的Windows工具首选项是VS2008。 (仅供参考)
这可能吗?
答案 0 :(得分:2)
Windows中I / O端口的默认保护级别阻止用户模式程序在任何端口上使用inp和out指令。你的程序会因GPF而死亡。有几个免费提供的驱动程序可以更改该保护级别,以便ring 3代码可以访问端口。如果你对杀手锏感兴趣,那也没关系。
规范的是inpout32。
答案 1 :(得分:0)
大多数硬件位置都映射到无法从用户空间访问的区域,因此您将需要提供所需API的设备驱动程序。
您还可以查看UNIX Application Migration Guide广告MSDN。
答案 2 :(得分:0)