ISO9660 PRIMARY VOLUME DESCRIPTOR = PVD
[BYTE] | VDtype |
[BYTE] | VDid[5] |
[BYTE] | version |
[BYTE] | unused1 |
[BYTE] | system_id[32] |
[BYTE] | volume_id[32] |
[BYTE] | unused2[8] |
[DWORD] | total_number_of_sectors[2] |
[BYTE] | unused3[32] |
[WORD] | volume_set_size[2] |
[WORD] | volume_sequence_number[2] |
[WORD] | sector_size[2] |
[DWORD] | path_table_size[2] |
[DWORD] | path_table_LE1 |
[DWORD] | path_table_LE2 |
[DWORD] | path_table_BE1 |
[DWORD] | path_table_BE2 |
directory_record | root_dir_rec (34bytes) |
[BYTE] | volume_set_id[128] |
[BYTE] | publisher_id[128] |
[BYTE] | preparer_id[128] |
[BYTE] | application_id[128] |
[BYTE] | copyright_file_id[37] |
[BYTE] | abstract_file_id[37] |
[BYTE] | bibliographic_file_id[37] |
[date_iso9660] | creation_date |
[date_iso9660] | modification_date |
[date_iso9660] | expiration_date |
[date_iso9660] | effective_date |
[BYTE] | file_structure_version |
[BYTE] | unused4 |
[BYTE] | application_data[512] |
[BYTE] | unused5[653] |
#Define iso_PRIMAR_VD 1
#Define iso_SUPLEM_VD 2
#Define iso_TERMIN_VD 255
#Define iso_ID_VD {67,68,48,48,49,1}
ISO9660 TERMINTOR VOLUME DESCRIPTOR =TVD
[BYTE] | teminator (=255 = iso_TERMIN_VD) |
[BYTE] | id[6] (=iso_ID_VD) |
[BYTE] | unused[2041] |
ISO9660 Date and Time record
[BYTE] | year_[4] (ascii string) |
[BYTE] | month_[2] (ascii string) |
[BYTE] | day_[2] |
[BYTE] | hour_[2] |
[BYTE] | min_[2] |
[BYTE] | sec_[2] |
[BYTE] | houndres_[2] |
[BYTE] | greenwich15(*) |
(*) greenwich15 -> SIGNED byte, in units of 15 minutes ! (west is negative, east is positive)
|
ISO9660 directory record
[BYTE] | len_ (must be EVEN) |
[BYTE] | ext_attr_length' =0 |
[DWORD] | first_sector[2] |
[DWORD] | size[2] |
[BYTE] | yearssince1900 |
[BYTE] | month_ |
[BYTE] | day_ |
[BYTE] | hour_ |
[BYTE] | min_ |
[BYTE] | sec_ |
[BYTE] | greenwich15 |
[BYTE] | flags (*) |
[BYTE] | interleave_file_unit_size |
[BYTE] | interleave_gap |
[WORD] | volume_sequence_number[2] |
[BYTE] | name_len |
[BYTE] | name_[name_len] |
[BYTE] | padding_if_needed (**) |
(*) flags (like DOS attributes but a little different) : '0:normal(0)|hidden(1) ; 1:file(0)|dir(1) ; 2:unassoc|assoc(1) ; 3:unspec|record(1) ; 4:no|permision(1) ; 5:0 ; 6:0 ; 7:no:notfinalrecord(1)
(**) padding_if_needed -> if name_len odd this exist else this field DOESN'T exists !
ISO9660 PATH TABEL for little endian and big endian
[BYTE] | name_len (=1 for ROOT DIR) |
[BYTE] | unused1 '=0 |
[DWORD] | firstsector |
[WORD] | parent (=1 for root dir) |
[BYTE] | name_plus_padding[name_len + (name_len and 1)] |
ISO9660 supplementary volume descriptor = SVD
[BYTE] | type_ |
[BYTE] | id[5] |
[BYTE] | version '=1 |
[BYTE] | flags |
[BYTE] | system_id[32] |
[BYTE] | volume_id[32] |
[BYTE] | unused2[8] |
[DWORD] | total_number_of_sectors[2] |
[BYTE] | escape_[120-88] |
[WORD] | volume_set_size[2] |
[WORD] | volume_sequence_number[2] |
[WORD] | sector_size[2] |
[DWORD] | path_table_size[2] |
[DWORD] | path_table_LE1 |
[DWORD] | path_table_LE2 |
[DWORD] | path_table_BE1 |
[DWORD] | path_table_BE2 |
[directory_record] | root_directory_record (34bytes) |
[BYTE] | volume_set_id[128] |
[BYTE] | publisher_id[128] |
[BYTE] | preparer_id[128] |
[BYTE] | application_id[128] |
[BYTE] | copyright_file_id[37] |
[BYTE] | abstract_file_id[37] |
[BYTE] | bibliographic_file_id[37] |
[date_iso9660] | creation_date |
[date_iso9660] | modification_date |
[date_iso9660] | expiration_date |
[date_iso9660] | effective_date |
[BYTE] | file_structure_version |
[BYTE] | unused4 |
[BYTE] | application_data[512] |
[BYTE] | unused5[653] |
|