Verifying the DMI Information Structure
Before accessing the DMI tables, the checksums must be verified to ensure
the reliability of the information. To calculate a checksum value of a
structure, do the following steps:
1 Add together all the bytes of the structure.
2 Convert the value to negative.
3 Cast the value to a byte (take the low byte).
There are two checksums, one for the DMI header and another for the
remaining DMI structure. To verify these two checksums, do the following
steps:
1 Locate the DMI header.
2 Using the length value of the DMI header, calculate the checksum value
for the DMI header. (When adding together the bytes of the header, ex-
clude the checksum byte, offset 0Dh.)
3 Verify this value against the checksum given for the DMI header.
4 Retrieve the position and length of the DMI structures.
5 Calculate the checksum value for the DMI structures.
6 Verify this value against the checksum given for the DMI structures.
DMI Sub-Structure Tables
Each type of table has a pre-defined format. Although the structure can
evolve over time, new fields are always added to the end of the table and the
length value reflects this new size.
To parse several tables in order to find a specific table, simply use the table
length. Using this method will ensure that the parser can function even
when the tables evolve over time.
To locate specific BIOS information, use the DMI sub-structure tables which
are listed on the following pages.
3 Desktop Management Interface
Accessing BIOS DMI Information
35