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>