Direct hardware access is prohibited on Windows NT-based operating systems (Windows 2000, Windows XP, Windows Server 2003). This is not a limitation of .NET at all. In order to talk to hardware under NT-based operating systems, you'll need to interface through the DeviceIoControl function to talk to a device driver you'll need to write for that particular piece of hardware.
This was first published in December 2003