素人考えだけど、
ハードウェアアクセスのプリミティブなところだけ、
Win32ネイティブのDLLにすればすっきりするのでは?