Memory-channel classification, load limits, and device associations.
lazybiosGetType37 returns a lazybiosType37Array_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 lazybiosFreeType37, or assign it to ctx->Type37 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 (channel_type). The raw value stays alongside it, so both the encoding and its meaning are available.
memory_device_count determines the number of entries; the formatted structure length is used only to verify that all declared entries are available. This follows the SMBIOS requirement that consumers must not infer the entry count from the structure length because later specification revisions can append fields.
Each entry provides its channel load and a handle that references a Type 17 Memory Device structure. If the declared entry array extends beyond the formatted structure, field_status.memory_devices remains absent and no partial array is returned. An entry handle of 0xFFFF is preserved and its entry-level field status reports absent.
Release the returned structures and their entry arrays with lazybiosFreeType37, or assign the result to lazybiosCTX::Type37 and use lazybiosCleanup.