<trclass="memdesc:"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Header that precedes a sequence of dump hardware entries and their variable-length payload. <ahref="structDumpHardwareHeader.html#details">More...</a><br/></td></tr>
<divclass="textblock"><p>Packed on-disk structures describing hardware and software used during image acquisition. </p>
<p>A Dump Hardware block (identifier = BlockType::DumpHardwareBlock) records one or more dump "environments" – typically combinations of a physical device (drive, controller, adapter) and the software stack that performed the read operation. Each environment is represented by a <aclass="el"href="structDumpHardwareEntry.html">DumpHardwareEntry</a> followed by a sequence of UTF‑8 strings and an optional array of extent ranges (<aclass="el"href="structDumpExtent.html">DumpExtent</a>, defined in <aclass="el"href="context_8h.html"title="Central runtime context structures for libaaruformat (image state, caches, checksum buffers).">context.h</a>) that delimit portions of the medium this environment contributed to.</p>
<p>Binary layout (little-endian, packed, all multi-byte integers LE):</p>
<p><aclass="el"href="structDumpHardwareHeader.html"title="Header that precedes a sequence of dump hardware entries and their variable-length payload.">DumpHardwareHeader</a> (sizeof = 16 bytes) identifier (4) -> BlockType::DumpHardwareBlock entries (2) -> number of following hardware entries length (4) -> total bytes of payload that follow this header crc64 (8) -> CRC64-ECMA of the payload bytes</p>
<p>Repeated for i in [0, entries): <aclass="el"href="structDumpHardwareEntry.html"title="Per-environment length table describing subsequent UTF-8 strings and optional extent array.">DumpHardwareEntry</a> (36 bytes) manufacturerLength (4) modelLength (4) revisionLength (4) firmwareLength (4) serialLength (4) softwareNameLength (4) softwareVersionLength (4) softwareOperatingSystemLength (4) extents (4) -> number of <aclass="el"href="structDumpExtent.html"title="Inclusive [start,end] logical sector range contributed by a single hardware environment.">DumpExtent</a> structs after the strings</p>
<p>Variable-length UTF-8 strings (not NUL-terminated on disk) appear immediately after the entry, in the exact order of the length fields above; each string is present only if its length > 0. The reader allocates an extra byte to append '\0' for in-memory convenience.</p>
<p>Array of 'extents' <aclass="el"href="structDumpExtent.html"title="Inclusive [start,end] logical sector range contributed by a single hardware environment.">DumpExtent</a> structures (each 16 bytes: start, end) follows the strings if extents > 0. The semantic of each extent is an inclusive [start, end] logical sector (or unit) range contributed by this hardware/software combination.</p>
<p>CRC semantics:</p><ul>
<li>crc64 covers exactly 'length' bytes immediately following the header.</li>
<li>For legacy images with header.imageMajorVersion <= AARUF_VERSION_V1 the original C# writer produced a byte-swapped CRC; the library compensates internally (see <aclass="el"href="internal_8h.html#a0e2cfc858c0551bc9bef11d5bdb85aac"title="Processes a dump hardware block from the image stream.">process_dumphw_block()</a>).</li>
<li>Each string is malloc'ed with +1 byte for terminator during processing.</li>
<li>Extents array is malloc'ed per entry when extents > 0.</li>
<li>See aaruformatContext::dumpHardwareEntriesWithData for owning pointers.</li>
</ul>
<dlclass="section warning"><dt>Warning</dt><dd>Structures are packed; never rely on natural alignment when mapping from a byte buffer. </dd></dl>
<dlclass="section see"><dt>See also</dt><dd><aclass="el"href="structDumpHardwareHeader.html"title="Header that precedes a sequence of dump hardware entries and their variable-length payload.">DumpHardwareHeader</a></dd>
<aclass="el"href="structDumpExtent.html"title="Inclusive [start,end] logical sector range contributed by a single hardware environment.">DumpExtent</a> (in <aclass="el"href="context_8h.html"title="Central runtime context structures for libaaruformat (image state, caches, checksum buffers).">context.h</a>) </dd>
<dd>
<aclass="el"href="enums_8h.html#a54420623f26ab6bb61042b41cccf37a3"title="List of known block types contained in an Aaru image.">BlockType</a></dd></dl>
<pclass="definition">Definition in file <aclass="el"href="dump_8h_source.html">dump.h</a>.</p>
<liclass="footer">Generated by <ahref="https://www.doxygen.org/index.html"><imgclass="footer"src="doxygen.svg"width="104"height="31"alt="doxygen"/></a> 1.15.0 </li>