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
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.