FUSE is not really an appropriate way to do this. It's intended to be
used to implement a filesystem, and that isn't really what you're trying to
do here -- FUSE will pass you events like "get me all files in this
directory", which is considerably higher-level than you're after. (You'd
probably rather have simple events like "read this block".)
There is a project to allow a block device to be implemented in
userspace (BUSE), but it's pretty preliminary. I'm not sure how
well it'll work for this.