Windows equivalent of inb(), outb(), low level i/o

前端 未结 3 578
眼角桃花
眼角桃花 2021-01-15 22:32

I have some Linux code that monitors our hardware by collecting temperatures, voltages, and fan speeds, from the motherboard using inb(), outb(), inl(), etc. low level i/o f

相关标签:
3条回答
  • 2021-01-15 22:49

    Most hardware locations are mapped in areas not accesible from userspace, so you are going to need a device driver that provides the desired API.

    You can also check the UNIX Application Migration Guide ad MSDN.

    0 讨论(0)
  • 2021-01-15 22:54

    The default protection level for I/O ports in Windows prevents a user-mode program from using inp and out instructions on any port. Your program will die with a GPF. There are several freely available drivers around that change that protection level so that ring 3 code can access the ports. Which is okay if you're interested in killer pokes.

    The canonical one is inpout32.

    0 讨论(0)
  • 2021-01-15 22:58

    Well, after much searching with some trial and error, the two most useful bits I found to be helpful are:

    WinRing0 and IO.DLL .

    They pretty much do the same thing, the difference is the samples of code you will find to help you get started using them.

    Hope this helps for others.

    0 讨论(0)
提交回复
热议问题