2010-04-09 18 views
1

我有一些Linux代碼,通過使用INB()收集溫度,電壓,和風扇速度,從主板,OUTB監視我們的硬件(), inl()等低級I/O函數。視窗等效INB的(),OUTB(),低級I/O

我的挑戰是端口的代碼在Windows下運行一個簡單的控制檯應用程序。但是我對Win32(或.NET)提供的允許我訪問直接內存映射端口的許多函數感到困惑。

我不想編寫系統驅動程序。

我的Windows工具首選項是VS2008。 (fyi)

這可能嗎?

回答

0

好,有一些試驗和錯誤後一番搜索,這兩個最有用的位,我發現是有幫助的是:

WinRing0IO.DLL

他們幾乎做同樣的事情,不同的是代碼的樣本,你會發現,以幫助您使用它們開始。

希望這有助於他人。

0

大多數硬件位置映射在用戶空間不可訪問的區域,所以您要去需要提供所需API的設備驅動程序。

您還可以檢查UNIX Application Migration Guide廣告MSDN。

2

在Windows I/O端口的默認保護級別可以防止用戶模式程序使用INP和OUT指令的任何端口。您的程序將與GPF一起死亡。有幾個可以免費使用的驅動程序可以改變這個保護級別,以便ring 3代碼可以訪問端口。如果你對殺手捅感興趣,那可以。

的規範之一是inpout32