IMAPIv2 limits the size of the file on a ISO9660 compatible disc to 2GB.
In order to burn files of more than 2GB you have to set a UDF file system.
HRESULT hr = FileSystemImage->put_FileSystemsToCreate( FsiFileSystemUDF );
The FsiFileSystems enumeration defines the values for recognized file systems:
typedef enum FsiFileSystems {
FsiFileSystemNone = 0,
FsiFileSystemISO9660 = 1,
FsiFileSystemJoliet = 2,
FsiFileSystemUDF = 4,
FsiFileSystemUnknown = 0x40000000
} FsiFileSystems;
- FsiFileSystemNone The disc does not contain a recognized file system.
- FsiFileSystemISO9660 Standard CD file system.
- FsiFileSystemJoliet Joliet file system.
- FsiFileSystemUDF UDF file system.
- FsiFileSystemUnknown The disc appears to have a file system, but the layout does not match any of the recognized types.
UDF natively supports many modern file systems features:
- Large partition size (maximum 2TB with 512B block size, or 8TB with 2KB block size) 64-bit file size
- Extended attributes (e.g., named streams, or forks) without size limitation
- Long file names (maximum 254 bytes, any character can appear in the name)
- Unicode encoding of file names
- Sparse file
- Hard links
- Symbolic links
- Metadata checksum
Limitations:
- Limited partition size. 32-bit block number limits the partition size to 2TB for 512 sector size.
- Does not support compressed/encrypted file and directories.