Firmware component inventory, state, and structure associations.
lazybiosGetType45 returns a lazybiosType45Array_t holding every matching structure. Iterate entries using count. A non-NULL result whose count is zero means the table contains no structure of this type; NULL means the arguments were unusable or an allocation failed. Release the set with lazybiosFreeType45, or assign it to ctx->Type45 and let lazybiosCleanup own it.
Every record carries its own SMBIOS handle and the structure length the firmware reported.
Encoded fields are decoded during parsing into decoded, which mirrors the raw member names (firmware_id_format, state, version_format). The raw value stays alongside it, so both the encoding and its meaning are available.
version_format applies to both firmware_version and lowest_supported_firmware_version. Decode it with decoded.version_format. Decode firmware_id_format with decoded.firmware_id_format before interpreting firmware_id.
image_size is measured in bytes. The raw value 0xFFFFFFFFFFFFFFFF means that the image size is unknown. It remains a present field because this value is defined by SMBIOS rather than used as LazyBIOS field-availability metadata.
number_of_associated_components determines the number of entries in associated_component_handles. The formatted structure length is not used to infer that count because SMBIOS permits future fields after the list. Each handle can reference any SMBIOS structure representing a device that owns the firmware component.
If the declared handle list extends beyond the formatted structure, field_status.associated_component_handles remains absent. A zero count is valid and produces a present list with no allocated elements.
Release the returned structure array, copied strings, and associated-handle arrays with lazybiosFreeType45, or assign the result to lazybiosCTX::Type45 and use lazybiosCleanup.