Excellent work!
I noticed that when mounting without the -ro flag, it looks like it write to some sort of temp file (I havent found where that is) giving it pseudo-write permission on the VHD. That is awesome!
If you create a virtual disk volume with properties that indicate write support and if write requests then fail on this disk volume, you would get something like that effect. Practically, you would fill up filesystem internal cache and the filesystem driver will keep trying to write out this data once in a while. There is always a risk for blue-screen on system freezing when you fill up filesystem cache completely, though.
Have been looking forever for a way to mount network VHDs/VMDKs in a pseudo-write mode. Is this how vhdi library works, or is it how your wrote the proxy? If so, can you elaborate please?
Why don't you simply create a differencing vhd/vmdk file and mount that one? That would give this effect and this is how I accomplish this myself when I need to mount a virtual disk file in write-temporary mode.
I also tried Arsenal (different beast, I know) as it promises 'write temporary' mode for mounting, but no luck, it is always grayed out, and there isn't the slightest info on how to use that tool.
Write-temporary mode with Arsenal Image Mounter is only supported for libewf.dll mounted images, such as enCase, .e01, .ex01 etc. This is implemented in libewf.dll so that if you open an image file in read/write mode it automatically creates a temporary .d01 file where it stores differencing data.
But I have some positive news too, the next version of Arsenal Image Mounter will support write-temporary mode for many other image formats mounted through DiscUtils.dll. This will be implemented by creating a temporary differencing file and mounting that one in read/write mode instead of the original image file, which means that this will be supported for image file format for which DiscUtils.dll supports creating a differencing file.