Ich kenn mich mit der Peripherie nicht aus, aber es könnte schwierig werden, überhaupt erst an die physische Adresse $378 zu kommen, da Windows den physischen Speicher in einen virtuellen Speicher mappt. Die logische Adresse $378 entspricht also nicht der physischen $378!
Außerdem läuft eine
WinNT-Usermode-Anwendung in einem geschützten Modus (protected mode), der bestimmte Anweisungen, wie Interrupts, nicht zulässt. Dafür müsstest du schon einen Treiber schreiben.