I had some free time today so I reversed the VirtualVolume format: http://sirg3.svnrepository.com/RbHacks/trac.cgi/wiki/VirtualVolume

Also, for the sake of it being recorded in the archives, the format is also below. It's in a pseudo-C++, which probably isn't too clear, so if you have questions, ask! Just remember, this is gathered from reverse engineering, so it's NOT OFFICIAL and NOT SUPPORTED.

-- Joe Ranieri


struct FileHeader {
        "VFSv",
        int formatVers,
        Block[] blocks
};

struct Block {
        "BlkS",
        int id,
        int segmentNumber,
        double blockSize,
        double nextSegmentPosition,
        void * contextSpecificData, // can be any of the below structures
        NUL[] padding, // pad it to blockSize - 4
        "BlkE"
};

struct HeaderData {
        int blockCount,
        int ?
};

struct FileData {
        double fileSize,
        OSType macCreator,
        int parentID,
        double creationDateTotalSeconds,
        double modificationDateTotalSeconds,
        char[234] name,
        char[] data // as much will fit in the block
};

struct FileSegmentData {
        char[] data
};

struct BMapData {
        "BMap",
        int entryCount,
        BMapEntry entries[count-1]
};

struct BMapEntry {
        int fileOffset,
        int blockId,
        int segmentNumber
};

_______________________________________________
Unsubscribe or switch delivery mode:
<http://www.realsoftware.com/support/listmanager/>

Search the archives of this list here:
<http://support.realsoftware.com/listarchives/lists.html>

Reply via email to