Have you considered writing to a virtual disk file of some kind? You could create your own "disk" file and write to it any way you want. You just need to create your own virtual controller and disk format - though you could probably come up with some open source tools from something like Xen or Bochs to help you.
I don't know that this would be easier but it may not be harder and it could be free. If you do manage to get it to work this way you'll have the advantage of not being locked down to any specific hardware.