]> wimlib.net Git - wimlib/blobdiff - include/wimlib/header.h
Rewrite of write_stream_list(), and writing packed resources
[wimlib] / include / wimlib / header.h
index 5f26f7c6acd1841ccca51fbb6d60a063a403baea..d67811c121a0034b28d1edbb40273fa01bbb92c5 100644 (file)
 /* On-disk format of the WIM header. */
 struct wim_header_disk {
 
-       /* Magic characters "MSWIM\0\0\0" */
+       /* +0x00: Magic characters "MSWIM\0\0\0" */
        le64 magic;
 
-       /* Size of the WIM header, in bytes; WIM_HEADER_DISK_SIZE expected
-        * (currently the only supported value). */
+       /* +0x08: Size of the WIM header, in bytes; WIM_HEADER_DISK_SIZE
+        * expected (currently the only supported value). */
        u32 hdr_size;
 
-       /* Version of the WIM file
+       /* +0x0c: Version of the WIM file
         * TODO  */
        u32 wim_version;
 
-       /* Flags for the WIM file (WIM_HDR_FLAG_*) */
+       /* +0x10: Flags for the WIM file (WIM_HDR_FLAG_*) */
        u32 wim_flags;
 
-       /* Chunk size for compressed resources in the WIM, or 0 if the WIM is
-        * uncompressed.  */
+       /* +0x14: Chunk size for compressed resources in the WIM, or 0 if the
+        * WIM is uncompressed.  */
        u32 chunk_size;
 
-       /* Globally unique identifier for the WIM file.  Basically a bunch of
-        * random bytes. */
+       /* +0x18: Globally unique identifier for the WIM file.  Basically a
+        * bunch of random bytes. */
        u8 guid[WIM_GID_LEN];
 
-       /* Number of this WIM part in the split WIM file, indexed from 1, or 1
-        * if the WIM is not split. */
+       /* +0x28: Number of this WIM part in the split WIM file, indexed from 1,
+        * or 1 if the WIM is not split. */
        u16 part_number;
 
-       /* Total number of parts of the split WIM file, or 1 if the WIM is not
-        * split. */
+       /* +0x2a: Total number of parts of the split WIM file, or 1 if the WIM
+        * is not split. */
        u16 total_parts;
 
-       /* Number of images in the WIM. */
+       /* +0x2c: Number of images in the WIM. */
        u32 image_count;
 
-       /* Location and size of the WIM's lookup table. */
+       /* +0x30: Location and size of the WIM's lookup table. */
        struct wim_reshdr_disk lookup_table_reshdr;
 
-       /* Location and size of the WIM's XML data. */
+       /* +0x48: Location and size of the WIM's XML data. */
        struct wim_reshdr_disk xml_data_reshdr;
 
-       /* Location and size of metadata resource for the bootable image of the
-        * WIM, or all zeroes if no image is bootable. */
+       /* +0x60: Location and size of metadata resource for the bootable image
+        * of the WIM, or all zeroes if no image is bootable. */
        struct wim_reshdr_disk boot_metadata_reshdr;
 
-       /* 1-based index of the bootable image of the WIM, or 0 if no image is
-        * bootable. */
+       /* +0x78: 1-based index of the bootable image of the WIM, or 0 if no
+        * image is bootable. */
        u32 boot_idx;
 
-       /* Location and size of the WIM's integrity table, or all zeroes if the
-        * WIM has no integrity table.
+       /* +0x7c: Location and size of the WIM's integrity table, or all zeroes
+        * if the WIM has no integrity table.
         *
         * Note the integrity_table_reshdr here is 4-byte aligned even though
         * it would ordinarily be 8-byte aligned--- hence, the _packed_attribute
         * on the `struct wim_header_disk' is essential. */
        struct wim_reshdr_disk integrity_table_reshdr;
 
-       /* Unused bytes. */
+       /* +0x94: Unused bytes. */
        u8 unused[60];
+
+       /* +0xd0 (208)  */
 } _packed_attribute;