TianoCore EDK2 master
Loading...
Searching...
No Matches
SmBios.h
Go to the documentation of this file.
1
13#ifndef __SMBIOS_STANDARD_H__
14#define __SMBIOS_STANDARD_H__
15
21#define SMBIOS_HANDLE_RESERVED_BEGIN 0xFF00
22
29#define SMBIOS_HANDLE_PI_RESERVED 0xFFFE
30
37#define SMBIOS_STRING_MAX_LENGTH 64
38
39//
40// The length of the entire structure table (including all strings) must be reported
41// in the Structure Table Length field of the SMBIOS Structure Table Entry Point,
42// which is a WORD field limited to 65,535 bytes.
43//
44#define SMBIOS_TABLE_MAX_LENGTH 0xFFFF
45
46//
47// For SMBIOS 3.0, Structure table maximum size in Entry Point structure is DWORD field limited to 0xFFFFFFFF bytes.
48//
49#define SMBIOS_3_0_TABLE_MAX_LENGTH 0xFFFFFFFF
50
56#define SMBIOS_ANCHOR_STRING "_SM_"
57#define SMBIOS_ANCHOR_STRING_LENGTH 4
59
65#define SMBIOS_3_0_ANCHOR_STRING "_SM3_"
66#define SMBIOS_3_0_ANCHOR_STRING_LENGTH 5
68
69//
70// SMBIOS type macros which is according to SMBIOS 3.3.0 specification.
71//
72#define SMBIOS_TYPE_BIOS_INFORMATION 0
73#define SMBIOS_TYPE_SYSTEM_INFORMATION 1
74#define SMBIOS_TYPE_BASEBOARD_INFORMATION 2
75#define SMBIOS_TYPE_SYSTEM_ENCLOSURE 3
76#define SMBIOS_TYPE_PROCESSOR_INFORMATION 4
77#define SMBIOS_TYPE_MEMORY_CONTROLLER_INFORMATION 5
78#define SMBIOS_TYPE_MEMORY_MODULE_INFORMATON 6
79#define SMBIOS_TYPE_CACHE_INFORMATION 7
80#define SMBIOS_TYPE_PORT_CONNECTOR_INFORMATION 8
81#define SMBIOS_TYPE_SYSTEM_SLOTS 9
82#define SMBIOS_TYPE_ONBOARD_DEVICE_INFORMATION 10
83#define SMBIOS_TYPE_OEM_STRINGS 11
84#define SMBIOS_TYPE_SYSTEM_CONFIGURATION_OPTIONS 12
85#define SMBIOS_TYPE_BIOS_LANGUAGE_INFORMATION 13
86#define SMBIOS_TYPE_GROUP_ASSOCIATIONS 14
87#define SMBIOS_TYPE_SYSTEM_EVENT_LOG 15
88#define SMBIOS_TYPE_PHYSICAL_MEMORY_ARRAY 16
89#define SMBIOS_TYPE_MEMORY_DEVICE 17
90#define SMBIOS_TYPE_32BIT_MEMORY_ERROR_INFORMATION 18
91#define SMBIOS_TYPE_MEMORY_ARRAY_MAPPED_ADDRESS 19
92#define SMBIOS_TYPE_MEMORY_DEVICE_MAPPED_ADDRESS 20
93#define SMBIOS_TYPE_BUILT_IN_POINTING_DEVICE 21
94#define SMBIOS_TYPE_PORTABLE_BATTERY 22
95#define SMBIOS_TYPE_SYSTEM_RESET 23
96#define SMBIOS_TYPE_HARDWARE_SECURITY 24
97#define SMBIOS_TYPE_SYSTEM_POWER_CONTROLS 25
98#define SMBIOS_TYPE_VOLTAGE_PROBE 26
99#define SMBIOS_TYPE_COOLING_DEVICE 27
100#define SMBIOS_TYPE_TEMPERATURE_PROBE 28
101#define SMBIOS_TYPE_ELECTRICAL_CURRENT_PROBE 29
102#define SMBIOS_TYPE_OUT_OF_BAND_REMOTE_ACCESS 30
103#define SMBIOS_TYPE_BOOT_INTEGRITY_SERVICE 31
104#define SMBIOS_TYPE_SYSTEM_BOOT_INFORMATION 32
105#define SMBIOS_TYPE_64BIT_MEMORY_ERROR_INFORMATION 33
106#define SMBIOS_TYPE_MANAGEMENT_DEVICE 34
107#define SMBIOS_TYPE_MANAGEMENT_DEVICE_COMPONENT 35
108#define SMBIOS_TYPE_MANAGEMENT_DEVICE_THRESHOLD_DATA 36
109#define SMBIOS_TYPE_MEMORY_CHANNEL 37
110#define SMBIOS_TYPE_IPMI_DEVICE_INFORMATION 38
111#define SMBIOS_TYPE_SYSTEM_POWER_SUPPLY 39
112#define SMBIOS_TYPE_ADDITIONAL_INFORMATION 40
113#define SMBIOS_TYPE_ONBOARD_DEVICES_EXTENDED_INFORMATION 41
114#define SMBIOS_TYPE_MANAGEMENT_CONTROLLER_HOST_INTERFACE 42
115#define SMBIOS_TYPE_TPM_DEVICE 43
116#define SMBIOS_TYPE_PROCESSOR_ADDITIONAL_INFORMATION 44
117#define SMBIOS_TYPE_FIRMWARE_INVENTORY_INFORMATION 45
118#define SMBIOS_TYPE_STRING_PROPERTY_INFORMATION 46
119
125#define SMBIOS_TYPE_INACTIVE 0x007E
126
131#define SMBIOS_TYPE_END_OF_TABLE 0x007F
132
133#define SMBIOS_OEM_BEGIN 128
134#define SMBIOS_OEM_END 255
135
140typedef UINT8 SMBIOS_TYPE;
141
152typedef UINT16 SMBIOS_HANDLE;
153
157#pragma pack(1)
158typedef struct {
159 UINT8 AnchorString[SMBIOS_ANCHOR_STRING_LENGTH];
160 UINT8 EntryPointStructureChecksum;
161 UINT8 EntryPointLength;
162 UINT8 MajorVersion;
163 UINT8 MinorVersion;
164 UINT16 MaxStructureSize;
165 UINT8 EntryPointRevision;
166 UINT8 FormattedArea[5];
167 UINT8 IntermediateAnchorString[5];
168 UINT8 IntermediateChecksum;
169 UINT16 TableLength;
170 UINT32 TableAddress;
171 UINT16 NumberOfSmbiosStructures;
172 UINT8 SmbiosBcdRevision;
174
175typedef struct {
176 UINT8 AnchorString[SMBIOS_3_0_ANCHOR_STRING_LENGTH];
177 UINT8 EntryPointStructureChecksum;
178 UINT8 EntryPointLength;
179 UINT8 MajorVersion;
180 UINT8 MinorVersion;
181 UINT8 DocRev;
182 UINT8 EntryPointRevision;
183 UINT8 Reserved;
184 UINT32 TableMaximumSize;
185 UINT64 TableAddress;
187
191typedef struct {
192 SMBIOS_TYPE Type;
193 UINT8 Length;
194 SMBIOS_HANDLE Handle;
196
209
214typedef struct {
215 UINT32 Reserved : 2;
216 UINT32 Unknown : 1;
217 UINT32 BiosCharacteristicsNotSupported : 1;
218 UINT32 IsaIsSupported : 1;
219 UINT32 McaIsSupported : 1;
220 UINT32 EisaIsSupported : 1;
221 UINT32 PciIsSupported : 1;
222 UINT32 PcmciaIsSupported : 1;
223 UINT32 PlugAndPlayIsSupported : 1;
224 UINT32 ApmIsSupported : 1;
225 UINT32 BiosIsUpgradable : 1;
226 UINT32 BiosShadowingAllowed : 1;
227 UINT32 VlVesaIsSupported : 1;
228 UINT32 EscdSupportIsAvailable : 1;
229 UINT32 BootFromCdIsSupported : 1;
230 UINT32 SelectableBootIsSupported : 1;
231 UINT32 RomBiosIsSocketed : 1;
232 UINT32 BootFromPcmciaIsSupported : 1;
233 UINT32 EDDSpecificationIsSupported : 1;
234 UINT32 JapaneseNecFloppyIsSupported : 1;
235 UINT32 JapaneseToshibaFloppyIsSupported : 1;
236 UINT32 Floppy525_360IsSupported : 1;
237 UINT32 Floppy525_12IsSupported : 1;
238 UINT32 Floppy35_720IsSupported : 1;
239 UINT32 Floppy35_288IsSupported : 1;
240 UINT32 PrintScreenIsSupported : 1;
241 UINT32 Keyboard8042IsSupported : 1;
242 UINT32 SerialIsSupported : 1;
243 UINT32 PrinterIsSupported : 1;
244 UINT32 CgaMonoIsSupported : 1;
245 UINT32 NecPc98 : 1;
246 UINT32 ReservedForVendor : 32;
249
255typedef struct {
256 UINT8 AcpiIsSupported : 1;
257 UINT8 UsbLegacyIsSupported : 1;
258 UINT8 AgpIsSupported : 1;
259 UINT8 I2OBootIsSupported : 1;
260 UINT8 Ls120BootIsSupported : 1;
261 UINT8 AtapiZipDriveBootIsSupported : 1;
262 UINT8 Boot1394IsSupported : 1;
263 UINT8 SmartBatteryIsSupported : 1;
265
271typedef struct {
272 UINT8 BiosBootSpecIsSupported : 1;
273 UINT8 FunctionKeyNetworkBootIsSupported : 1;
274 UINT8 TargetContentDistributionEnabled : 1;
275 UINT8 UefiSpecificationSupported : 1;
276 UINT8 VirtualMachineSupported : 1;
277 UINT8 ManufacturingModeSupported : 1;
278 UINT8 ManufacturingModeEnabled : 1;
279 UINT8 ExtensionByte2Reserved : 1;
281
285typedef struct {
286 MBCE_BIOS_RESERVED BiosReserved;
287 MBCE_SYSTEM_RESERVED SystemReserved;
289
293typedef struct {
294 UINT16 Size : 14;
295 UINT16 Unit : 2;
297
301typedef struct {
303 SMBIOS_TABLE_STRING Vendor;
304 SMBIOS_TABLE_STRING BiosVersion;
305 UINT16 BiosSegment;
306 SMBIOS_TABLE_STRING BiosReleaseDate;
307 UINT8 BiosSize;
308 MISC_BIOS_CHARACTERISTICS BiosCharacteristics;
309 UINT8 BIOSCharacteristicsExtensionBytes[2];
310 UINT8 SystemBiosMajorRelease;
311 UINT8 SystemBiosMinorRelease;
312 UINT8 EmbeddedControllerFirmwareMajorRelease;
313 UINT8 EmbeddedControllerFirmwareMinorRelease;
314 //
315 // Add for smbios 3.1.0
316 //
317 EXTENDED_BIOS_ROM_SIZE ExtendedBiosSize;
319
323typedef enum {
324 SystemWakeupTypeReserved = 0x00,
325 SystemWakeupTypeOther = 0x01,
326 SystemWakeupTypeUnknown = 0x02,
327 SystemWakeupTypeApmTimer = 0x03,
328 SystemWakeupTypeModemRing = 0x04,
329 SystemWakeupTypeLanRemote = 0x05,
330 SystemWakeupTypePowerSwitch = 0x06,
331 SystemWakeupTypePciPme = 0x07,
332 SystemWakeupTypeAcPowerRestored = 0x08
334
343typedef struct {
345 SMBIOS_TABLE_STRING Manufacturer;
346 SMBIOS_TABLE_STRING ProductName;
347 SMBIOS_TABLE_STRING Version;
348 SMBIOS_TABLE_STRING SerialNumber;
349 GUID Uuid;
351 SMBIOS_TABLE_STRING SKUNumber;
352 SMBIOS_TABLE_STRING Family;
354
358typedef struct {
359 UINT8 Motherboard : 1;
360 UINT8 RequiresDaughterCard : 1;
361 UINT8 Removable : 1;
362 UINT8 Replaceable : 1;
363 UINT8 HotSwappable : 1;
364 UINT8 Reserved : 3;
366
370typedef enum {
371 BaseBoardTypeUnknown = 0x1,
372 BaseBoardTypeOther = 0x2,
373 BaseBoardTypeServerBlade = 0x3,
374 BaseBoardTypeConnectivitySwitch = 0x4,
375 BaseBoardTypeSystemManagementModule = 0x5,
376 BaseBoardTypeProcessorModule = 0x6,
377 BaseBoardTypeIOModule = 0x7,
378 BaseBoardTypeMemoryModule = 0x8,
379 BaseBoardTypeDaughterBoard = 0x9,
380 BaseBoardTypeMotherBoard = 0xA,
381 BaseBoardTypeProcessorMemoryModule = 0xB,
382 BaseBoardTypeProcessorIOModule = 0xC,
383 BaseBoardTypeInterconnectBoard = 0xD
385
392typedef struct {
394 SMBIOS_TABLE_STRING Manufacturer;
395 SMBIOS_TABLE_STRING ProductName;
396 SMBIOS_TABLE_STRING Version;
397 SMBIOS_TABLE_STRING SerialNumber;
398 SMBIOS_TABLE_STRING AssetTag;
399 BASE_BOARD_FEATURE_FLAGS FeatureFlag;
400 SMBIOS_TABLE_STRING LocationInChassis;
401 UINT16 ChassisHandle;
402 UINT8 BoardType;
403 UINT8 NumberOfContainedObjectHandles;
404 UINT16 ContainedObjectHandles[1];
406
410typedef enum {
411 MiscChassisTypeOther = 0x01,
412 MiscChassisTypeUnknown = 0x02,
413 MiscChassisTypeDeskTop = 0x03,
414 MiscChassisTypeLowProfileDesktop = 0x04,
415 MiscChassisTypePizzaBox = 0x05,
416 MiscChassisTypeMiniTower = 0x06,
417 MiscChassisTypeTower = 0x07,
418 MiscChassisTypePortable = 0x08,
419 MiscChassisTypeLapTop = 0x09,
420 MiscChassisTypeNotebook = 0x0A,
421 MiscChassisTypeHandHeld = 0x0B,
422 MiscChassisTypeDockingStation = 0x0C,
423 MiscChassisTypeAllInOne = 0x0D,
424 MiscChassisTypeSubNotebook = 0x0E,
425 MiscChassisTypeSpaceSaving = 0x0F,
426 MiscChassisTypeLunchBox = 0x10,
427 MiscChassisTypeMainServerChassis = 0x11,
428 MiscChassisTypeExpansionChassis = 0x12,
429 MiscChassisTypeSubChassis = 0x13,
430 MiscChassisTypeBusExpansionChassis = 0x14,
431 MiscChassisTypePeripheralChassis = 0x15,
432 MiscChassisTypeRaidChassis = 0x16,
433 MiscChassisTypeRackMountChassis = 0x17,
434 MiscChassisTypeSealedCasePc = 0x18,
435 MiscChassisMultiSystemChassis = 0x19,
436 MiscChassisCompactPCI = 0x1A,
437 MiscChassisAdvancedTCA = 0x1B,
438 MiscChassisBlade = 0x1C,
439 MiscChassisBladeEnclosure = 0x1D,
440 MiscChassisTablet = 0x1E,
441 MiscChassisConvertible = 0x1F,
442 MiscChassisDetachable = 0x20,
443 MiscChassisIoTGateway = 0x21,
444 MiscChassisEmbeddedPc = 0x22,
445 MiscChassisMiniPc = 0x23,
446 MiscChassisStickPc = 0x24
448
452typedef enum {
453 ChassisStateOther = 0x01,
454 ChassisStateUnknown = 0x02,
455 ChassisStateSafe = 0x03,
456 ChassisStateWarning = 0x04,
457 ChassisStateCritical = 0x05,
458 ChassisStateNonRecoverable = 0x06
460
464typedef enum {
465 ChassisSecurityStatusOther = 0x01,
466 ChassisSecurityStatusUnknown = 0x02,
467 ChassisSecurityStatusNone = 0x03,
468 ChassisSecurityStatusExternalInterfaceLockedOut = 0x04,
469 ChassisSecurityStatusExternalInterfaceLockedEnabled = 0x05
471
475typedef struct {
476 UINT8 ContainedElementType;
477 UINT8 ContainedElementMinimum;
478 UINT8 ContainedElementMaximum;
480
490typedef struct {
492 SMBIOS_TABLE_STRING Manufacturer;
493 UINT8 Type;
494 SMBIOS_TABLE_STRING Version;
495 SMBIOS_TABLE_STRING SerialNumber;
496 SMBIOS_TABLE_STRING AssetTag;
501 UINT8 OemDefined[4];
502 UINT8 Height;
503 UINT8 NumberofPowerCords;
504 UINT8 ContainedElementCount;
505 UINT8 ContainedElementRecordLength;
506 //
507 // Can have 0 to (ContainedElementCount * ContainedElementRecordLength) contained elements
508 //
509 CONTAINED_ELEMENT ContainedElements[1];
510 //
511 // Add for smbios 2.7
512 //
513 // Since ContainedElements has a variable number of entries, must not define SKUNumber in
514 // the structure. Need to reference it by starting at offset 0x15 and adding
515 // (ContainedElementCount * ContainedElementRecordLength) bytes.
516 //
517 // SMBIOS_TABLE_STRING SKUNumber;
519
523typedef enum {
524 ProcessorOther = 0x01,
525 ProcessorUnknown = 0x02,
526 CentralProcessor = 0x03,
527 MathProcessor = 0x04,
528 DspProcessor = 0x05,
529 VideoProcessor = 0x06
531
535typedef enum {
536 ProcessorFamilyOther = 0x01,
537 ProcessorFamilyUnknown = 0x02,
538 ProcessorFamily8086 = 0x03,
539 ProcessorFamily80286 = 0x04,
540 ProcessorFamilyIntel386 = 0x05,
541 ProcessorFamilyIntel486 = 0x06,
542 ProcessorFamily8087 = 0x07,
543 ProcessorFamily80287 = 0x08,
544 ProcessorFamily80387 = 0x09,
545 ProcessorFamily80487 = 0x0A,
546 ProcessorFamilyPentium = 0x0B,
547 ProcessorFamilyPentiumPro = 0x0C,
548 ProcessorFamilyPentiumII = 0x0D,
549 ProcessorFamilyPentiumMMX = 0x0E,
550 ProcessorFamilyCeleron = 0x0F,
551 ProcessorFamilyPentiumIIXeon = 0x10,
552 ProcessorFamilyPentiumIII = 0x11,
553 ProcessorFamilyM1 = 0x12,
554 ProcessorFamilyM2 = 0x13,
555 ProcessorFamilyIntelCeleronM = 0x14,
556 ProcessorFamilyIntelPentium4Ht = 0x15,
557 ProcessorFamilyIntel = 0x16,
558 ProcessorFamilyAmdDuron = 0x18,
559 ProcessorFamilyK5 = 0x19,
560 ProcessorFamilyK6 = 0x1A,
561 ProcessorFamilyK6_2 = 0x1B,
562 ProcessorFamilyK6_3 = 0x1C,
563 ProcessorFamilyAmdAthlon = 0x1D,
564 ProcessorFamilyAmd29000 = 0x1E,
565 ProcessorFamilyK6_2Plus = 0x1F,
566 ProcessorFamilyPowerPC = 0x20,
567 ProcessorFamilyPowerPC601 = 0x21,
568 ProcessorFamilyPowerPC603 = 0x22,
569 ProcessorFamilyPowerPC603Plus = 0x23,
570 ProcessorFamilyPowerPC604 = 0x24,
571 ProcessorFamilyPowerPC620 = 0x25,
572 ProcessorFamilyPowerPCx704 = 0x26,
573 ProcessorFamilyPowerPC750 = 0x27,
574 ProcessorFamilyIntelCoreDuo = 0x28,
575 ProcessorFamilyIntelCoreDuoMobile = 0x29,
576 ProcessorFamilyIntelCoreSoloMobile = 0x2A,
577 ProcessorFamilyIntelAtom = 0x2B,
578 ProcessorFamilyIntelCoreM = 0x2C,
579 ProcessorFamilyIntelCorem3 = 0x2D,
580 ProcessorFamilyIntelCorem5 = 0x2E,
581 ProcessorFamilyIntelCorem7 = 0x2F,
582 ProcessorFamilyAlpha = 0x30,
583 ProcessorFamilyAlpha21064 = 0x31,
584 ProcessorFamilyAlpha21066 = 0x32,
585 ProcessorFamilyAlpha21164 = 0x33,
586 ProcessorFamilyAlpha21164PC = 0x34,
587 ProcessorFamilyAlpha21164a = 0x35,
588 ProcessorFamilyAlpha21264 = 0x36,
589 ProcessorFamilyAlpha21364 = 0x37,
590 ProcessorFamilyAmdTurionIIUltraDualCoreMobileM = 0x38,
591 ProcessorFamilyAmdTurionIIDualCoreMobileM = 0x39,
592 ProcessorFamilyAmdAthlonIIDualCoreM = 0x3A,
593 ProcessorFamilyAmdOpteron6100Series = 0x3B,
594 ProcessorFamilyAmdOpteron4100Series = 0x3C,
595 ProcessorFamilyAmdOpteron6200Series = 0x3D,
596 ProcessorFamilyAmdOpteron4200Series = 0x3E,
597 ProcessorFamilyAmdFxSeries = 0x3F,
598 ProcessorFamilyMips = 0x40,
599 ProcessorFamilyMIPSR4000 = 0x41,
600 ProcessorFamilyMIPSR4200 = 0x42,
601 ProcessorFamilyMIPSR4400 = 0x43,
602 ProcessorFamilyMIPSR4600 = 0x44,
603 ProcessorFamilyMIPSR10000 = 0x45,
604 ProcessorFamilyAmdCSeries = 0x46,
605 ProcessorFamilyAmdESeries = 0x47,
607 ProcessorFamilyAmdGSeries = 0x49,
608 ProcessorFamilyAmdZSeries = 0x4A,
609 ProcessorFamilyAmdRSeries = 0x4B,
610 ProcessorFamilyAmdOpteron4300 = 0x4C,
611 ProcessorFamilyAmdOpteron6300 = 0x4D,
612 ProcessorFamilyAmdOpteron3300 = 0x4E,
613 ProcessorFamilyAmdFireProSeries = 0x4F,
614 ProcessorFamilySparc = 0x50,
615 ProcessorFamilySuperSparc = 0x51,
616 ProcessorFamilymicroSparcII = 0x52,
617 ProcessorFamilymicroSparcIIep = 0x53,
618 ProcessorFamilyUltraSparc = 0x54,
619 ProcessorFamilyUltraSparcII = 0x55,
620 ProcessorFamilyUltraSparcIii = 0x56,
621 ProcessorFamilyUltraSparcIII = 0x57,
622 ProcessorFamilyUltraSparcIIIi = 0x58,
623 ProcessorFamily68040 = 0x60,
624 ProcessorFamily68xxx = 0x61,
625 ProcessorFamily68000 = 0x62,
626 ProcessorFamily68010 = 0x63,
627 ProcessorFamily68020 = 0x64,
628 ProcessorFamily68030 = 0x65,
629 ProcessorFamilyAmdAthlonX4QuadCore = 0x66,
630 ProcessorFamilyAmdOpteronX1000Series = 0x67,
631 ProcessorFamilyAmdOpteronX2000Series = 0x68,
632 ProcessorFamilyAmdOpteronASeries = 0x69,
633 ProcessorFamilyAmdOpteronX3000Series = 0x6A,
634 ProcessorFamilyAmdZen = 0x6B,
635 ProcessorFamilyHobbit = 0x70,
636 ProcessorFamilyCrusoeTM5000 = 0x78,
637 ProcessorFamilyCrusoeTM3000 = 0x79,
638 ProcessorFamilyEfficeonTM8000 = 0x7A,
639 ProcessorFamilyWeitek = 0x80,
640 ProcessorFamilyItanium = 0x82,
641 ProcessorFamilyAmdAthlon64 = 0x83,
642 ProcessorFamilyAmdOpteron = 0x84,
643 ProcessorFamilyAmdSempron = 0x85,
644 ProcessorFamilyAmdTurion64Mobile = 0x86,
645 ProcessorFamilyDualCoreAmdOpteron = 0x87,
646 ProcessorFamilyAmdAthlon64X2DualCore = 0x88,
647 ProcessorFamilyAmdTurion64X2Mobile = 0x89,
648 ProcessorFamilyQuadCoreAmdOpteron = 0x8A,
649 ProcessorFamilyThirdGenerationAmdOpteron = 0x8B,
650 ProcessorFamilyAmdPhenomFxQuadCore = 0x8C,
651 ProcessorFamilyAmdPhenomX4QuadCore = 0x8D,
652 ProcessorFamilyAmdPhenomX2DualCore = 0x8E,
653 ProcessorFamilyAmdAthlonX2DualCore = 0x8F,
654 ProcessorFamilyPARISC = 0x90,
655 ProcessorFamilyPaRisc8500 = 0x91,
656 ProcessorFamilyPaRisc8000 = 0x92,
657 ProcessorFamilyPaRisc7300LC = 0x93,
658 ProcessorFamilyPaRisc7200 = 0x94,
659 ProcessorFamilyPaRisc7100LC = 0x95,
660 ProcessorFamilyPaRisc7100 = 0x96,
661 ProcessorFamilyV30 = 0xA0,
662 ProcessorFamilyQuadCoreIntelXeon3200Series = 0xA1,
663 ProcessorFamilyDualCoreIntelXeon3000Series = 0xA2,
664 ProcessorFamilyQuadCoreIntelXeon5300Series = 0xA3,
665 ProcessorFamilyDualCoreIntelXeon5100Series = 0xA4,
666 ProcessorFamilyDualCoreIntelXeon5000Series = 0xA5,
667 ProcessorFamilyDualCoreIntelXeonLV = 0xA6,
668 ProcessorFamilyDualCoreIntelXeonULV = 0xA7,
669 ProcessorFamilyDualCoreIntelXeon7100Series = 0xA8,
670 ProcessorFamilyQuadCoreIntelXeon5400Series = 0xA9,
671 ProcessorFamilyQuadCoreIntelXeon = 0xAA,
672 ProcessorFamilyDualCoreIntelXeon5200Series = 0xAB,
673 ProcessorFamilyDualCoreIntelXeon7200Series = 0xAC,
674 ProcessorFamilyQuadCoreIntelXeon7300Series = 0xAD,
675 ProcessorFamilyQuadCoreIntelXeon7400Series = 0xAE,
676 ProcessorFamilyMultiCoreIntelXeon7400Series = 0xAF,
677 ProcessorFamilyPentiumIIIXeon = 0xB0,
678 ProcessorFamilyPentiumIIISpeedStep = 0xB1,
679 ProcessorFamilyPentium4 = 0xB2,
680 ProcessorFamilyIntelXeon = 0xB3,
681 ProcessorFamilyAS400 = 0xB4,
682 ProcessorFamilyIntelXeonMP = 0xB5,
683 ProcessorFamilyAMDAthlonXP = 0xB6,
684 ProcessorFamilyAMDAthlonMP = 0xB7,
685 ProcessorFamilyIntelItanium2 = 0xB8,
686 ProcessorFamilyIntelPentiumM = 0xB9,
687 ProcessorFamilyIntelCeleronD = 0xBA,
688 ProcessorFamilyIntelPentiumD = 0xBB,
689 ProcessorFamilyIntelPentiumEx = 0xBC,
691 ProcessorFamilyReserved = 0xBE,
692 ProcessorFamilyIntelCore2 = 0xBF,
693 ProcessorFamilyIntelCore2Solo = 0xC0,
694 ProcessorFamilyIntelCore2Extreme = 0xC1,
695 ProcessorFamilyIntelCore2Quad = 0xC2,
696 ProcessorFamilyIntelCore2ExtremeMobile = 0xC3,
697 ProcessorFamilyIntelCore2DuoMobile = 0xC4,
698 ProcessorFamilyIntelCore2SoloMobile = 0xC5,
699 ProcessorFamilyIntelCoreI7 = 0xC6,
700 ProcessorFamilyDualCoreIntelCeleron = 0xC7,
701 ProcessorFamilyIBM390 = 0xC8,
702 ProcessorFamilyG4 = 0xC9,
703 ProcessorFamilyG5 = 0xCA,
704 ProcessorFamilyG6 = 0xCB,
705 ProcessorFamilyzArchitecture = 0xCC,
706 ProcessorFamilyIntelCoreI5 = 0xCD,
707 ProcessorFamilyIntelCoreI3 = 0xCE,
708 ProcessorFamilyIntelCoreI9 = 0xCF,
709 ProcessorFamilyIntelXeonD = 0xD0,
711 ProcessorFamilyViaC7D = 0xD3,
712 ProcessorFamilyViaC7 = 0xD4,
713 ProcessorFamilyViaEden = 0xD5,
714 ProcessorFamilyMultiCoreIntelXeon = 0xD6,
715 ProcessorFamilyDualCoreIntelXeon3Series = 0xD7,
716 ProcessorFamilyQuadCoreIntelXeon3Series = 0xD8,
717 ProcessorFamilyViaNano = 0xD9,
718 ProcessorFamilyDualCoreIntelXeon5Series = 0xDA,
719 ProcessorFamilyQuadCoreIntelXeon5Series = 0xDB,
720 ProcessorFamilyDualCoreIntelXeon7Series = 0xDD,
721 ProcessorFamilyQuadCoreIntelXeon7Series = 0xDE,
722 ProcessorFamilyMultiCoreIntelXeon7Series = 0xDF,
723 ProcessorFamilyMultiCoreIntelXeon3400Series = 0xE0,
724 ProcessorFamilyAmdOpteron3000Series = 0xE4,
725 ProcessorFamilyAmdSempronII = 0xE5,
726 ProcessorFamilyEmbeddedAmdOpteronQuadCore = 0xE6,
727 ProcessorFamilyAmdPhenomTripleCore = 0xE7,
728 ProcessorFamilyAmdTurionUltraDualCoreMobile = 0xE8,
729 ProcessorFamilyAmdTurionDualCoreMobile = 0xE9,
730 ProcessorFamilyAmdAthlonDualCore = 0xEA,
731 ProcessorFamilyAmdSempronSI = 0xEB,
732 ProcessorFamilyAmdPhenomII = 0xEC,
733 ProcessorFamilyAmdAthlonII = 0xED,
734 ProcessorFamilySixCoreAmdOpteron = 0xEE,
735 ProcessorFamilyAmdSempronM = 0xEF,
736 ProcessorFamilyi860 = 0xFA,
737 ProcessorFamilyi960 = 0xFB,
738 ProcessorFamilyIndicatorFamily2 = 0xFE,
739 ProcessorFamilyReserved1 = 0xFF
741
745typedef enum {
746 ProcessorFamilyARMv7 = 0x0100,
747 ProcessorFamilyARMv8 = 0x0101,
748 ProcessorFamilyARMv9 = 0x0102,
749 ProcessorFamilySH3 = 0x0104,
750 ProcessorFamilySH4 = 0x0105,
751 ProcessorFamilyARM = 0x0118,
752 ProcessorFamilyStrongARM = 0x0119,
753 ProcessorFamily6x86 = 0x012C,
754 ProcessorFamilyMediaGX = 0x012D,
755 ProcessorFamilyMII = 0x012E,
756 ProcessorFamilyWinChip = 0x0140,
757 ProcessorFamilyDSP = 0x015E,
758 ProcessorFamilyVideoProcessor = 0x01F4,
759 ProcessorFamilyRiscvRV32 = 0x0200,
760 ProcessorFamilyRiscVRV64 = 0x0201,
761 ProcessorFamilyRiscVRV128 = 0x0202,
762 ProcessorFamilyLoongArch = 0x0258,
763 ProcessorFamilyLoongson1 = 0x0259,
764 ProcessorFamilyLoongson2 = 0x025A,
765 ProcessorFamilyLoongson3 = 0x025B,
766 ProcessorFamilyLoongson2K = 0x025C,
767 ProcessorFamilyLoongson3A = 0x025D,
768 ProcessorFamilyLoongson3B = 0x025E,
769 ProcessorFamilyLoongson3C = 0x025F,
770 ProcessorFamilyLoongson3D = 0x0260,
771 ProcessorFamilyLoongson3E = 0x0261,
772 ProcessorFamilyDualCoreLoongson2K = 0x0262,
773 ProcessorFamilyQuadCoreLoongson3A = 0x026C,
774 ProcessorFamilyMultiCoreLoongson3A = 0x026D,
775 ProcessorFamilyQuadCoreLoongson3B = 0x026E,
776 ProcessorFamilyMultiCoreLoongson3B = 0x026F,
777 ProcessorFamilyMultiCoreLoongson3C = 0x0270,
778 ProcessorFamilyMultiCoreLoongson3D = 0x0271,
779 ProcessorFamilyIntelCore3 = 0x0300,
780 ProcessorFamilyIntelCore5 = 0x0301,
781 ProcessorFamilyIntelCore7 = 0x0302,
782 ProcessorFamilyIntelCore9 = 0x0303,
783 ProcessorFamilyIntelCoreUltra3 = 0x0304,
784 ProcessorFamilyIntelCoreUltra5 = 0x0305,
785 ProcessorFamilyIntelCoreUltra7 = 0x0306,
786 ProcessorFamilyIntelCoreUltra9 = 0x0307
788
792typedef struct {
793 UINT8 ProcessorVoltageCapability5V : 1;
794 UINT8 ProcessorVoltageCapability3_3V : 1;
795 UINT8 ProcessorVoltageCapability2_9V : 1;
798 UINT8 ProcessorVoltageIndicateLegacy : 1;
800
804typedef enum {
805 ProcessorUpgradeOther = 0x01,
806 ProcessorUpgradeUnknown = 0x02,
807 ProcessorUpgradeDaughterBoard = 0x03,
808 ProcessorUpgradeZIFSocket = 0x04,
810 ProcessorUpgradeNone = 0x06,
811 ProcessorUpgradeLIFSocket = 0x07,
812 ProcessorUpgradeSlot1 = 0x08,
813 ProcessorUpgradeSlot2 = 0x09,
814 ProcessorUpgrade370PinSocket = 0x0A,
815 ProcessorUpgradeSlotA = 0x0B,
816 ProcessorUpgradeSlotM = 0x0C,
817 ProcessorUpgradeSocket423 = 0x0D,
819 ProcessorUpgradeSocket478 = 0x0F,
820 ProcessorUpgradeSocket754 = 0x10,
821 ProcessorUpgradeSocket940 = 0x11,
822 ProcessorUpgradeSocket939 = 0x12,
823 ProcessorUpgradeSocketmPGA604 = 0x13,
824 ProcessorUpgradeSocketLGA771 = 0x14,
825 ProcessorUpgradeSocketLGA775 = 0x15,
826 ProcessorUpgradeSocketS1 = 0x16,
827 ProcessorUpgradeAM2 = 0x17,
828 ProcessorUpgradeF1207 = 0x18,
829 ProcessorSocketLGA1366 = 0x19,
830 ProcessorUpgradeSocketG34 = 0x1A,
831 ProcessorUpgradeSocketAM3 = 0x1B,
832 ProcessorUpgradeSocketC32 = 0x1C,
833 ProcessorUpgradeSocketLGA1156 = 0x1D,
834 ProcessorUpgradeSocketLGA1567 = 0x1E,
835 ProcessorUpgradeSocketPGA988A = 0x1F,
836 ProcessorUpgradeSocketBGA1288 = 0x20,
837 ProcessorUpgradeSocketrPGA988B = 0x21,
838 ProcessorUpgradeSocketBGA1023 = 0x22,
839 ProcessorUpgradeSocketBGA1224 = 0x23,
841 ProcessorUpgradeSocketLGA1356 = 0x25,
842 ProcessorUpgradeSocketLGA2011 = 0x26,
843 ProcessorUpgradeSocketFS1 = 0x27,
844 ProcessorUpgradeSocketFS2 = 0x28,
845 ProcessorUpgradeSocketFM1 = 0x29,
846 ProcessorUpgradeSocketFM2 = 0x2A,
847 ProcessorUpgradeSocketLGA2011_3 = 0x2B,
848 ProcessorUpgradeSocketLGA1356_3 = 0x2C,
849 ProcessorUpgradeSocketLGA1150 = 0x2D,
850 ProcessorUpgradeSocketBGA1168 = 0x2E,
851 ProcessorUpgradeSocketBGA1234 = 0x2F,
852 ProcessorUpgradeSocketBGA1364 = 0x30,
853 ProcessorUpgradeSocketAM4 = 0x31,
854 ProcessorUpgradeSocketLGA1151 = 0x32,
855 ProcessorUpgradeSocketBGA1356 = 0x33,
856 ProcessorUpgradeSocketBGA1440 = 0x34,
857 ProcessorUpgradeSocketBGA1515 = 0x35,
858 ProcessorUpgradeSocketLGA3647_1 = 0x36,
859 ProcessorUpgradeSocketSP3 = 0x37,
860 ProcessorUpgradeSocketSP3r2 = 0x38,
861 ProcessorUpgradeSocketLGA2066 = 0x39,
862 ProcessorUpgradeSocketBGA1392 = 0x3A,
863 ProcessorUpgradeSocketBGA1510 = 0x3B,
864 ProcessorUpgradeSocketBGA1528 = 0x3C,
865 ProcessorUpgradeSocketLGA4189 = 0x3D,
866 ProcessorUpgradeSocketLGA1200 = 0x3E,
867 ProcessorUpgradeSocketLGA4677 = 0x3F,
868 ProcessorUpgradeSocketLGA1700 = 0x40,
869 ProcessorUpgradeSocketBGA1744 = 0x41,
870 ProcessorUpgradeSocketBGA1781 = 0x42,
871 ProcessorUpgradeSocketBGA1211 = 0x43,
872 ProcessorUpgradeSocketBGA2422 = 0x44,
873 ProcessorUpgradeSocketLGA1211 = 0x45,
874 ProcessorUpgradeSocketLGA2422 = 0x46,
875 ProcessorUpgradeSocketLGA5773 = 0x47,
876 ProcessorUpgradeSocketBGA5773 = 0x48,
877 ProcessorUpgradeSocketAM5 = 0x49,
878 ProcessorUpgradeSocketSP5 = 0x4A,
879 ProcessorUpgradeSocketSP6 = 0x4B,
880 ProcessorUpgradeSocketBGA883 = 0x4C,
881 ProcessorUpgradeSocketBGA1190 = 0x4D,
882 ProcessorUpgradeSocketBGA4129 = 0x4E,
883 ProcessorUpgradeSocketLGA4710 = 0x4F,
884 ProcessorUpgradeSocketLGA7529 = 0x50,
885 ProcessorUpgradeSocketBGA1964 = 0x51,
886 ProcessorUpgradeSocketBGA1792 = 0x52,
887 ProcessorUpgradeSocketBGA2049 = 0x53,
888 ProcessorUpgradeSocketBGA2551 = 0x54,
889 ProcessorUpgradeSocketLGA1851 = 0x55,
890 ProcessorUpgradeSocketBGA2114 = 0x56,
891 ProcessorUpgradeSocketBGA2833 = 0x57,
892 ProcessorUpgradeInvalid = 0xFF
894
898typedef struct {
899 UINT32 ProcessorSteppingId : 4;
900 UINT32 ProcessorModel : 4;
901 UINT32 ProcessorFamily : 4;
902 UINT32 ProcessorType : 2;
903 UINT32 ProcessorReserved1 : 2;
904 UINT32 ProcessorXModel : 4;
905 UINT32 ProcessorXFamily : 8;
906 UINT32 ProcessorReserved2 : 4;
908
909typedef struct {
910 UINT32 ProcessorFpu : 1;
911 UINT32 ProcessorVme : 1;
912 UINT32 ProcessorDe : 1;
913 UINT32 ProcessorPse : 1;
914 UINT32 ProcessorTsc : 1;
915 UINT32 ProcessorMsr : 1;
916 UINT32 ProcessorPae : 1;
917 UINT32 ProcessorMce : 1;
918 UINT32 ProcessorCx8 : 1;
919 UINT32 ProcessorApic : 1;
920 UINT32 ProcessorReserved1 : 1;
921 UINT32 ProcessorSep : 1;
922 UINT32 ProcessorMtrr : 1;
923 UINT32 ProcessorPge : 1;
924 UINT32 ProcessorMca : 1;
925 UINT32 ProcessorCmov : 1;
926 UINT32 ProcessorPat : 1;
927 UINT32 ProcessorPse36 : 1;
928 UINT32 ProcessorPsn : 1;
929 UINT32 ProcessorClfsh : 1;
930 UINT32 ProcessorReserved2 : 1;
931 UINT32 ProcessorDs : 1;
932 UINT32 ProcessorAcpi : 1;
933 UINT32 ProcessorMmx : 1;
934 UINT32 ProcessorFxsr : 1;
935 UINT32 ProcessorSse : 1;
936 UINT32 ProcessorSse2 : 1;
937 UINT32 ProcessorSs : 1;
938 UINT32 ProcessorReserved3 : 1;
939 UINT32 ProcessorTm : 1;
940 UINT32 ProcessorReserved4 : 2;
942
943typedef struct {
944 UINT16 ProcessorReserved1 : 1;
945 UINT16 ProcessorUnknown : 1;
946 UINT16 Processor64BitCapable : 1;
947 UINT16 ProcessorMultiCore : 1;
948 UINT16 ProcessorHardwareThread : 1;
949 UINT16 ProcessorExecuteProtection : 1;
950 UINT16 ProcessorEnhancedVirtualization : 1;
951 UINT16 ProcessorPowerPerformanceCtrl : 1;
952 UINT16 Processor128BitCapable : 1;
953 UINT16 ProcessorArm64SocId : 1;
954 UINT16 ProcessorReserved2 : 6;
956
960typedef union {
961 struct {
962 UINT8 CpuStatus : 3;
963 UINT8 Reserved1 : 3;
964 UINT8 SocketPopulated : 1;
965 UINT8 Reserved2 : 1;
966 } Bits;
967 UINT8 Data;
969
970typedef struct {
971 PROCESSOR_SIGNATURE Signature;
972 PROCESSOR_FEATURE_FLAGS FeatureFlags;
974
984typedef struct {
986 SMBIOS_TABLE_STRING Socket;
989 SMBIOS_TABLE_STRING ProcessorManufacturer;
990 PROCESSOR_ID_DATA ProcessorId;
991 SMBIOS_TABLE_STRING ProcessorVersion;
992 PROCESSOR_VOLTAGE Voltage;
993 UINT16 ExternalClock;
994 UINT16 MaxSpeed;
995 UINT16 CurrentSpeed;
996 UINT8 Status;
998 UINT16 L1CacheHandle;
999 UINT16 L2CacheHandle;
1000 UINT16 L3CacheHandle;
1001 SMBIOS_TABLE_STRING SerialNumber;
1002 SMBIOS_TABLE_STRING AssetTag;
1003 SMBIOS_TABLE_STRING PartNumber;
1004 //
1005 // Add for smbios 2.5
1006 //
1007 UINT8 CoreCount;
1008 UINT8 EnabledCoreCount;
1009 UINT8 ThreadCount;
1010 UINT16 ProcessorCharacteristics;
1011 //
1012 // Add for smbios 2.6
1013 //
1014 UINT16 ProcessorFamily2;
1015 //
1016 // Add for smbios 3.0
1017 //
1018 UINT16 CoreCount2;
1019 UINT16 EnabledCoreCount2;
1020 UINT16 ThreadCount2;
1021 //
1022 // Add for smbios 3.6
1023 //
1024 UINT16 ThreadEnabled;
1025 //
1026 // Add for smbios 3.8
1027 //
1028 SMBIOS_TABLE_STRING SocketType;
1030
1034typedef enum {
1035 ErrorDetectingMethodOther = 0x01,
1036 ErrorDetectingMethodUnknown = 0x02,
1037 ErrorDetectingMethodNone = 0x03,
1038 ErrorDetectingMethodParity = 0x04,
1039 ErrorDetectingMethod32Ecc = 0x05,
1040 ErrorDetectingMethod64Ecc = 0x06,
1041 ErrorDetectingMethod128Ecc = 0x07,
1042 ErrorDetectingMethodCrc = 0x08
1044
1048typedef struct {
1049 UINT8 Other : 1;
1050 UINT8 Unknown : 1;
1051 UINT8 None : 1;
1052 UINT8 SingleBitErrorCorrect : 1;
1053 UINT8 DoubleBitErrorCorrect : 1;
1054 UINT8 ErrorScrubbing : 1;
1055 UINT8 Reserved : 2;
1057
1061typedef enum {
1062 MemoryInterleaveOther = 0x01,
1063 MemoryInterleaveUnknown = 0x02,
1064 MemoryInterleaveOneWay = 0x03,
1065 MemoryInterleaveTwoWay = 0x04,
1066 MemoryInterleaveFourWay = 0x05,
1067 MemoryInterleaveEightWay = 0x06,
1068 MemoryInterleaveSixteenWay = 0x07
1070
1074typedef struct {
1075 UINT16 Other : 1;
1076 UINT16 Unknown : 1;
1077 UINT16 SeventyNs : 1;
1078 UINT16 SixtyNs : 1;
1079 UINT16 FiftyNs : 1;
1080 UINT16 Reserved : 11;
1082
1095typedef struct {
1096 SMBIOS_STRUCTURE Hdr;
1098 MEMORY_ERROR_CORRECT_CAPABILITY ErrCorrectCapability;
1101 UINT8 MaxMemoryModuleSize;
1102 MEMORY_SPEED_TYPE SupportSpeed;
1103 UINT16 SupportMemoryType;
1104 UINT8 MemoryModuleVoltage;
1105 UINT8 AssociatedMemorySlotNum;
1106 UINT16 MemoryModuleConfigHandles[1];
1108
1112typedef struct {
1113 UINT16 Other : 1;
1114 UINT16 Unknown : 1;
1115 UINT16 Standard : 1;
1116 UINT16 FastPageMode : 1;
1117 UINT16 Edo : 1;
1118 UINT16 Parity : 1;
1119 UINT16 Ecc : 1;
1120 UINT16 Simm : 1;
1121 UINT16 Dimm : 1;
1122 UINT16 BurstEdo : 1;
1123 UINT16 Sdram : 1;
1124 UINT16 Reserved : 5;
1126
1130typedef struct {
1132 UINT8 SingleOrDoubleBank : 1;
1134
1146typedef struct {
1147 SMBIOS_STRUCTURE Hdr;
1148 SMBIOS_TABLE_STRING SocketDesignation;
1149 UINT8 BankConnections;
1150 UINT8 CurrentSpeed;
1151 MEMORY_CURRENT_TYPE CurrentMemoryType;
1152 MEMORY_INSTALLED_ENABLED_SIZE InstalledSize;
1154 UINT8 ErrorStatus;
1156
1160typedef struct {
1161 UINT16 Other : 1;
1162 UINT16 Unknown : 1;
1163 UINT16 NonBurst : 1;
1164 UINT16 Burst : 1;
1165 UINT16 PipelineBurst : 1;
1166 UINT16 Synchronous : 1;
1167 UINT16 Asynchronous : 1;
1168 UINT16 Reserved : 9;
1170
1174typedef enum {
1175 CacheErrorOther = 0x01,
1176 CacheErrorUnknown = 0x02,
1177 CacheErrorNone = 0x03,
1178 CacheErrorParity = 0x04,
1180 CacheErrorMultiBit = 0x06
1182
1186typedef enum {
1187 CacheTypeOther = 0x01,
1188 CacheTypeUnknown = 0x02,
1189 CacheTypeInstruction = 0x03,
1190 CacheTypeData = 0x04,
1191 CacheTypeUnified = 0x05
1193
1197typedef enum {
1198 CacheAssociativityOther = 0x01,
1199 CacheAssociativityUnknown = 0x02,
1200 CacheAssociativityDirectMapped = 0x03,
1201 CacheAssociativity2Way = 0x04,
1202 CacheAssociativity4Way = 0x05,
1203 CacheAssociativityFully = 0x06,
1204 CacheAssociativity8Way = 0x07,
1205 CacheAssociativity16Way = 0x08,
1206 CacheAssociativity12Way = 0x09,
1207 CacheAssociativity24Way = 0x0A,
1208 CacheAssociativity32Way = 0x0B,
1209 CacheAssociativity48Way = 0x0C,
1210 CacheAssociativity64Way = 0x0D,
1211 CacheAssociativity20Way = 0x0E
1213
1222typedef struct {
1223 SMBIOS_STRUCTURE Hdr;
1224 SMBIOS_TABLE_STRING SocketDesignation;
1225 UINT16 CacheConfiguration;
1226 UINT16 MaximumCacheSize;
1227 UINT16 InstalledSize;
1228 CACHE_SRAM_TYPE_DATA SupportedSRAMType;
1229 CACHE_SRAM_TYPE_DATA CurrentSRAMType;
1230 UINT8 CacheSpeed;
1234 //
1235 // Add for smbios 3.1.0
1236 //
1237 UINT32 MaximumCacheSize2;
1238 UINT32 InstalledSize2;
1240
1244typedef enum {
1245 PortConnectorTypeNone = 0x00,
1246 PortConnectorTypeCentronics = 0x01,
1247 PortConnectorTypeMiniCentronics = 0x02,
1248 PortConnectorTypeProprietary = 0x03,
1249 PortConnectorTypeDB25Male = 0x04,
1250 PortConnectorTypeDB25Female = 0x05,
1251 PortConnectorTypeDB15Male = 0x06,
1252 PortConnectorTypeDB15Female = 0x07,
1253 PortConnectorTypeDB9Male = 0x08,
1254 PortConnectorTypeDB9Female = 0x09,
1255 PortConnectorTypeRJ11 = 0x0A,
1256 PortConnectorTypeRJ45 = 0x0B,
1257 PortConnectorType50PinMiniScsi = 0x0C,
1258 PortConnectorTypeMiniDin = 0x0D,
1259 PortConnectorTypeMicroDin = 0x0E,
1260 PortConnectorTypePS2 = 0x0F,
1261 PortConnectorTypeInfrared = 0x10,
1262 PortConnectorTypeHpHil = 0x11,
1263 PortConnectorTypeUsb = 0x12,
1264 PortConnectorTypeSsaScsi = 0x13,
1265 PortConnectorTypeCircularDin8Male = 0x14,
1266 PortConnectorTypeCircularDin8Female = 0x15,
1267 PortConnectorTypeOnboardIde = 0x16,
1268 PortConnectorTypeOnboardFloppy = 0x17,
1269 PortConnectorType9PinDualInline = 0x18,
1270 PortConnectorType25PinDualInline = 0x19,
1271 PortConnectorType50PinDualInline = 0x1A,
1272 PortConnectorType68PinDualInline = 0x1B,
1273 PortConnectorTypeOnboardSoundInput = 0x1C,
1274 PortConnectorTypeMiniCentronicsType14 = 0x1D,
1275 PortConnectorTypeMiniCentronicsType26 = 0x1E,
1276 PortConnectorTypeHeadPhoneMiniJack = 0x1F,
1277 PortConnectorTypeBNC = 0x20,
1278 PortConnectorType1394 = 0x21,
1279 PortConnectorTypeSasSata = 0x22,
1280 PortConnectorTypeUsbTypeC = 0x23,
1281 PortConnectorTypePC98 = 0xA0,
1282 PortConnectorTypePC98Hireso = 0xA1,
1283 PortConnectorTypePCH98 = 0xA2,
1284 PortConnectorTypePC98Note = 0xA3,
1285 PortConnectorTypePC98Full = 0xA4,
1286 PortConnectorTypeOther = 0xFF
1288
1292typedef enum {
1293 PortTypeNone = 0x00,
1294 PortTypeParallelXtAtCompatible = 0x01,
1295 PortTypeParallelPortPs2 = 0x02,
1296 PortTypeParallelPortEcp = 0x03,
1297 PortTypeParallelPortEpp = 0x04,
1298 PortTypeParallelPortEcpEpp = 0x05,
1299 PortTypeSerialXtAtCompatible = 0x06,
1300 PortTypeSerial16450Compatible = 0x07,
1301 PortTypeSerial16550Compatible = 0x08,
1302 PortTypeSerial16550ACompatible = 0x09,
1303 PortTypeScsi = 0x0A,
1304 PortTypeMidi = 0x0B,
1305 PortTypeJoyStick = 0x0C,
1306 PortTypeKeyboard = 0x0D,
1307 PortTypeMouse = 0x0E,
1308 PortTypeSsaScsi = 0x0F,
1309 PortTypeUsb = 0x10,
1310 PortTypeFireWire = 0x11,
1311 PortTypePcmciaTypeI = 0x12,
1312 PortTypePcmciaTypeII = 0x13,
1313 PortTypePcmciaTypeIII = 0x14,
1314 PortTypeCardBus = 0x15,
1315 PortTypeAccessBusPort = 0x16,
1316 PortTypeScsiII = 0x17,
1317 PortTypeScsiWide = 0x18,
1318 PortTypePC98 = 0x19,
1319 PortTypePC98Hireso = 0x1A,
1320 PortTypePCH98 = 0x1B,
1321 PortTypeVideoPort = 0x1C,
1322 PortTypeAudioPort = 0x1D,
1323 PortTypeModemPort = 0x1E,
1324 PortTypeNetworkPort = 0x1F,
1325 PortTypeSata = 0x20,
1326 PortTypeSas = 0x21,
1328 PortTypeThunderbolt = 0x23,
1329 PortType8251Compatible = 0xA0,
1330 PortType8251FifoCompatible = 0xA1,
1331 PortTypeOther = 0xFF
1333
1341typedef struct {
1342 SMBIOS_STRUCTURE Hdr;
1343 SMBIOS_TABLE_STRING InternalReferenceDesignator;
1345 SMBIOS_TABLE_STRING ExternalReferenceDesignator;
1347 UINT8 PortType;
1349
1353typedef enum {
1354 SlotTypeOther = 0x01,
1355 SlotTypeUnknown = 0x02,
1356 SlotTypeIsa = 0x03,
1357 SlotTypeMca = 0x04,
1358 SlotTypeEisa = 0x05,
1359 SlotTypePci = 0x06,
1360 SlotTypePcmcia = 0x07,
1361 SlotTypeVlVesa = 0x08,
1362 SlotTypeProprietary = 0x09,
1363 SlotTypeProcessorCardSlot = 0x0A,
1364 SlotTypeProprietaryMemoryCardSlot = 0x0B,
1365 SlotTypeIORiserCardSlot = 0x0C,
1366 SlotTypeNuBus = 0x0D,
1367 SlotTypePci66MhzCapable = 0x0E,
1368 SlotTypeAgp = 0x0F,
1369 SlotTypeApg2X = 0x10,
1370 SlotTypeAgp4X = 0x11,
1371 SlotTypePciX = 0x12,
1372 SlotTypeAgp8X = 0x13,
1373 SlotTypeM2Socket1_DP = 0x14,
1374 SlotTypeM2Socket1_SD = 0x15,
1375 SlotTypeM2Socket2 = 0x16,
1376 SlotTypeM2Socket3 = 0x17,
1377 SlotTypeMxmTypeI = 0x18,
1378 SlotTypeMxmTypeII = 0x19,
1379 SlotTypeMxmTypeIIIStandard = 0x1A,
1380 SlotTypeMxmTypeIIIHe = 0x1B,
1381 SlotTypeMxmTypeIV = 0x1C,
1382 SlotTypeMxm30TypeA = 0x1D,
1383 SlotTypeMxm30TypeB = 0x1E,
1384 SlotTypePciExpressGen2Sff_8639 = 0x1F,
1385 SlotTypePciExpressGen3Sff_8639 = 0x20,
1393 SlotTypeOCPNICPriorto30 = 0x28,
1394 SlotTypeCXLFlexbus10 = 0x30,
1395 SlotTypePC98C20 = 0xA0,
1396 SlotTypePC98C24 = 0xA1,
1397 SlotTypePC98E = 0xA2,
1398 SlotTypePC98LocalBus = 0xA3,
1399 SlotTypePC98Card = 0xA4,
1400 SlotTypePciExpress = 0xA5,
1401 SlotTypePciExpressX1 = 0xA6,
1402 SlotTypePciExpressX2 = 0xA7,
1403 SlotTypePciExpressX4 = 0xA8,
1404 SlotTypePciExpressX8 = 0xA9,
1405 SlotTypePciExpressX16 = 0xAA,
1406 SlotTypePciExpressGen2 = 0xAB,
1407 SlotTypePciExpressGen2X1 = 0xAC,
1408 SlotTypePciExpressGen2X2 = 0xAD,
1409 SlotTypePciExpressGen2X4 = 0xAE,
1410 SlotTypePciExpressGen2X8 = 0xAF,
1411 SlotTypePciExpressGen2X16 = 0xB0,
1412 SlotTypePciExpressGen3 = 0xB1,
1413 SlotTypePciExpressGen3X1 = 0xB2,
1414 SlotTypePciExpressGen3X2 = 0xB3,
1415 SlotTypePciExpressGen3X4 = 0xB4,
1416 SlotTypePciExpressGen3X8 = 0xB5,
1417 SlotTypePciExpressGen3X16 = 0xB6,
1418 SlotTypePciExpressGen4 = 0xB8,
1419 SlotTypePciExpressGen4X1 = 0xB9,
1420 SlotTypePciExpressGen4X2 = 0xBA,
1421 SlotTypePciExpressGen4X4 = 0xBB,
1422 SlotTypePciExpressGen4X8 = 0xBC,
1423 SlotTypePciExpressGen4X16 = 0xBD,
1424 SlotTypePCIExpressGen5 = 0xBE,
1425 SlotTypePCIExpressGen5X1 = 0xBF,
1426 SlotTypePCIExpressGen5X2 = 0xC0,
1427 SlotTypePCIExpressGen5X4 = 0xC1,
1428 SlotTypePCIExpressGen5X8 = 0xC2,
1429 SlotTypePCIExpressGen5X16 = 0xC3,
1430 SlotTypePCIExpressGen6andBeyond = 0xC4,
1431 SlotTypeEnterpriseandDatacenter1UE1FormFactorSlot = 0xC5,
1432 SlotTypeEnterpriseandDatacenter3E3FormFactorSlot = 0xC6
1434
1438typedef enum {
1439 SlotDataBusWidthOther = 0x01,
1440 SlotDataBusWidthUnknown = 0x02,
1441 SlotDataBusWidth8Bit = 0x03,
1442 SlotDataBusWidth16Bit = 0x04,
1443 SlotDataBusWidth32Bit = 0x05,
1444 SlotDataBusWidth64Bit = 0x06,
1445 SlotDataBusWidth128Bit = 0x07,
1452 SlotDataBusWidth32X = 0x0E
1454
1458typedef enum {
1459 SlotPhysicalWidthOther = 0x01,
1460 SlotPhysicalWidthUnknown = 0x02,
1461 SlotPhysicalWidth8Bit = 0x03,
1462 SlotPhysicalWidth16Bit = 0x04,
1463 SlotPhysicalWidth32Bit = 0x05,
1464 SlotPhysicalWidth64Bit = 0x06,
1465 SlotPhysicalWidth128Bit = 0x07,
1472 SlotPhysicalWidth32X = 0x0E
1474
1478typedef enum {
1479 Others = 0x00,
1480 Gen1 = 0x01,
1481 Gen2 = 0x01,
1482 Gen3 = 0x03,
1483 Gen4 = 0x04,
1484 Gen5 = 0x05,
1485 Gen6 = 0x06
1487
1491typedef enum {
1492 SlotUsageOther = 0x01,
1493 SlotUsageUnknown = 0x02,
1494 SlotUsageAvailable = 0x03,
1495 SlotUsageInUse = 0x04,
1496 SlotUsageUnavailable = 0x05
1498
1502typedef enum {
1503 SlotLengthOther = 0x01,
1504 SlotLengthUnknown = 0x02,
1505 SlotLengthShort = 0x03,
1506 SlotLengthLong = 0x04
1508
1512typedef struct {
1513 UINT8 CharacteristicsUnknown : 1;
1514 UINT8 Provides50Volts : 1;
1515 UINT8 Provides33Volts : 1;
1516 UINT8 SharedSlot : 1;
1517 UINT8 PcCard16Supported : 1;
1518 UINT8 CardBusSupported : 1;
1519 UINT8 ZoomVideoSupported : 1;
1520 UINT8 ModemRingResumeSupported : 1;
1525typedef struct {
1526 UINT8 PmeSignalSupported : 1;
1527 UINT8 HotPlugDevicesSupported : 1;
1528 UINT8 SmbusSignalSupported : 1;
1529 UINT8 BifurcationSupported : 1;
1530 UINT8 AsyncSurpriseRemoval : 1;
1531 UINT8 FlexbusSlotCxl10Capable : 1;
1532 UINT8 FlexbusSlotCxl20Capable : 1;
1533 UINT8 FlexbusSlotCxl30Capable : 1;
1535
1539typedef enum {
1540 SlotHeightNone = 0x00,
1541 SlotHeightOther = 0x01,
1542 SlotHeightUnknown = 0x02,
1543 SlotHeightFullHeight = 0x03,
1544 SlotHeightLowProfile = 0x04
1546
1550typedef struct {
1551 UINT16 SegmentGroupNum;
1552 UINT8 BusNum;
1553 UINT8 DevFuncNum;
1554 UINT8 DataBusWidth;
1556
1564typedef struct {
1565 SMBIOS_STRUCTURE Hdr;
1566 SMBIOS_TABLE_STRING SlotDesignation;
1567 UINT8 SlotType;
1571 UINT16 SlotID;
1572 MISC_SLOT_CHARACTERISTICS1 SlotCharacteristics1;
1573 MISC_SLOT_CHARACTERISTICS2 SlotCharacteristics2;
1574 //
1575 // Add for smbios 2.6
1576 //
1577 UINT16 SegmentGroupNum;
1578 UINT8 BusNum;
1579 UINT8 DevFuncNum;
1580 //
1581 // Add for smbios 3.2
1582 //
1583 UINT8 DataBusWidth;
1584 UINT8 PeerGroupingCount;
1585 MISC_SLOT_PEER_GROUP PeerGroups[1];
1586 //
1587 // Since PeerGroups has a variable number of entries, must not define new
1588 // fields in the structure. Remaining fields can be referenced using
1589 // SMBIOS_TABLE_TYPE9_EXTENDED structure
1590 //
1592
1596typedef struct {
1597 //
1598 // Add for smbios 3.4
1599 //
1600 UINT8 SlotInformation;
1601 UINT8 SlotPhysicalWidth;
1602 UINT16 SlotPitch;
1603 //
1604 // Add for smbios 3.5
1605 //
1608
1612typedef enum {
1613 OnBoardDeviceTypeOther = 0x01,
1614 OnBoardDeviceTypeUnknown = 0x02,
1615 OnBoardDeviceTypeVideo = 0x03,
1616 OnBoardDeviceTypeScsiController = 0x04,
1617 OnBoardDeviceTypeEthernet = 0x05,
1618 OnBoardDeviceTypeTokenRing = 0x06,
1619 OnBoardDeviceTypeSound = 0x07,
1620 OnBoardDeviceTypePATAController = 0x08,
1621 OnBoardDeviceTypeSATAController = 0x09,
1622 OnBoardDeviceTypeSASController = 0x0A
1624
1628typedef struct {
1631 SMBIOS_TABLE_STRING DescriptionString;
1633
1644typedef struct {
1645 SMBIOS_STRUCTURE Hdr;
1646 DEVICE_STRUCT Device[1];
1648
1654typedef struct {
1655 SMBIOS_STRUCTURE Hdr;
1656 UINT8 StringCount;
1658
1664typedef struct {
1665 SMBIOS_STRUCTURE Hdr;
1666 UINT8 StringCount;
1668
1674typedef struct {
1675 SMBIOS_STRUCTURE Hdr;
1676 UINT8 InstallableLanguages;
1677 UINT8 Flags;
1678 UINT8 Reserved[15];
1679 SMBIOS_TABLE_STRING CurrentLanguages;
1681
1685typedef struct {
1686 UINT8 ItemType;
1687 UINT16 ItemHandle;
1688} GROUP_STRUCT;
1689
1697typedef struct {
1698 SMBIOS_STRUCTURE Hdr;
1699 SMBIOS_TABLE_STRING GroupName;
1700 GROUP_STRUCT Group[1];
1702
1706typedef enum {
1707 EventLogTypeReserved = 0x00,
1708 EventLogTypeSingleBitECC = 0x01,
1709 EventLogTypeMultiBitECC = 0x02,
1710 EventLogTypeParityMemErr = 0x03,
1711 EventLogTypeBusTimeOut = 0x04,
1712 EventLogTypeIOChannelCheck = 0x05,
1713 EventLogTypeSoftwareNMI = 0x06,
1714 EventLogTypePOSTMemResize = 0x07,
1715 EventLogTypePOSTErr = 0x08,
1716 EventLogTypePCIParityErr = 0x09,
1717 EventLogTypePCISystemErr = 0x0A,
1718 EventLogTypeCPUFailure = 0x0B,
1719 EventLogTypeEISATimeOut = 0x0C,
1720 EventLogTypeMemLogDisabled = 0x0D,
1721 EventLogTypeLoggingDisabled = 0x0E,
1722 EventLogTypeSysLimitExce = 0x10,
1723 EventLogTypeAsyncHWTimer = 0x11,
1724 EventLogTypeSysConfigInfo = 0x12,
1725 EventLogTypeHDInfo = 0x13,
1726 EventLogTypeSysReconfig = 0x14,
1727 EventLogTypeUncorrectCPUErr = 0x15,
1728 EventLogTypeAreaResetAndClr = 0x16,
1729 EventLogTypeSystemBoot = 0x17,
1732 EventLogTypeEndOfLog = 0xFF
1734
1738typedef enum {
1739 EventLogVariableNone = 0x00,
1740 EventLogVariableHandle = 0x01,
1741 EventLogVariableMutilEvent = 0x02,
1742 EventLogVariableMutilEventHandle = 0x03,
1743 EventLogVariablePOSTResultBitmap = 0x04,
1744 EventLogVariableSysManagementType = 0x05,
1745 EventLogVariableMutliEventSysManagmentType = 0x06,
1746 EventLogVariableUnused = 0x07,
1747 EventLogVariableOEMAssigned = 0x80
1749
1753typedef struct {
1754 UINT8 LogType;
1755 UINT8 DataFormatType;
1757
1766typedef struct {
1767 SMBIOS_STRUCTURE Hdr;
1768 UINT16 LogAreaLength;
1769 UINT16 LogHeaderStartOffset;
1770 UINT16 LogDataStartOffset;
1771 UINT8 AccessMethod;
1772 UINT8 LogStatus;
1773 UINT32 LogChangeToken;
1774 UINT32 AccessMethodAddress;
1775 UINT8 LogHeaderFormat;
1776 UINT8 NumberOfSupportedLogTypeDescriptors;
1777 UINT8 LengthOfLogTypeDescriptor;
1778 EVENT_LOG_TYPE EventLogTypeDescriptors[1];
1780
1784typedef enum {
1785 MemoryArrayLocationOther = 0x01,
1786 MemoryArrayLocationUnknown = 0x02,
1787 MemoryArrayLocationSystemBoard = 0x03,
1788 MemoryArrayLocationIsaAddonCard = 0x04,
1789 MemoryArrayLocationEisaAddonCard = 0x05,
1790 MemoryArrayLocationPciAddonCard = 0x06,
1791 MemoryArrayLocationMcaAddonCard = 0x07,
1792 MemoryArrayLocationPcmciaAddonCard = 0x08,
1793 MemoryArrayLocationProprietaryAddonCard = 0x09,
1794 MemoryArrayLocationNuBus = 0x0A,
1795 MemoryArrayLocationPc98C20AddonCard = 0xA0,
1796 MemoryArrayLocationPc98C24AddonCard = 0xA1,
1797 MemoryArrayLocationPc98EAddonCard = 0xA2,
1798 MemoryArrayLocationPc98LocalBusAddonCard = 0xA3,
1799 MemoryArrayLocationCXLAddonCard = 0xA4
1801
1805typedef enum {
1806 MemoryArrayUseOther = 0x01,
1807 MemoryArrayUseUnknown = 0x02,
1808 MemoryArrayUseSystemMemory = 0x03,
1809 MemoryArrayUseVideoMemory = 0x04,
1810 MemoryArrayUseFlashMemory = 0x05,
1811 MemoryArrayUseNonVolatileRam = 0x06,
1812 MemoryArrayUseCacheMemory = 0x07
1814
1818typedef enum {
1819 MemoryErrorCorrectionOther = 0x01,
1820 MemoryErrorCorrectionUnknown = 0x02,
1821 MemoryErrorCorrectionNone = 0x03,
1822 MemoryErrorCorrectionParity = 0x04,
1823 MemoryErrorCorrectionSingleBitEcc = 0x05,
1824 MemoryErrorCorrectionMultiBitEcc = 0x06,
1825 MemoryErrorCorrectionCrc = 0x07
1827
1834typedef struct {
1835 SMBIOS_STRUCTURE Hdr;
1836 UINT8 Location;
1837 UINT8 Use;
1839 UINT32 MaximumCapacity;
1840 UINT16 MemoryErrorInformationHandle;
1841 UINT16 NumberOfMemoryDevices;
1842 //
1843 // Add for smbios 2.7
1844 //
1845 UINT64 ExtendedMaximumCapacity;
1847
1851typedef enum {
1852 MemoryFormFactorOther = 0x01,
1853 MemoryFormFactorUnknown = 0x02,
1854 MemoryFormFactorSimm = 0x03,
1855 MemoryFormFactorSip = 0x04,
1856 MemoryFormFactorChip = 0x05,
1857 MemoryFormFactorDip = 0x06,
1858 MemoryFormFactorZip = 0x07,
1859 MemoryFormFactorProprietaryCard = 0x08,
1860 MemoryFormFactorDimm = 0x09,
1861 MemoryFormFactorTsop = 0x0A,
1862 MemoryFormFactorRowOfChips = 0x0B,
1863 MemoryFormFactorRimm = 0x0C,
1864 MemoryFormFactorSodimm = 0x0D,
1865 MemoryFormFactorSrimm = 0x0E,
1866 MemoryFormFactorFbDimm = 0x0F,
1867 MemoryFormFactorDie = 0x10
1869
1873typedef enum {
1874 MemoryTypeOther = 0x01,
1875 MemoryTypeUnknown = 0x02,
1876 MemoryTypeDram = 0x03,
1877 MemoryTypeEdram = 0x04,
1878 MemoryTypeVram = 0x05,
1879 MemoryTypeSram = 0x06,
1880 MemoryTypeRam = 0x07,
1881 MemoryTypeRom = 0x08,
1882 MemoryTypeFlash = 0x09,
1883 MemoryTypeEeprom = 0x0A,
1884 MemoryTypeFeprom = 0x0B,
1885 MemoryTypeEprom = 0x0C,
1886 MemoryTypeCdram = 0x0D,
1887 MemoryType3Dram = 0x0E,
1888 MemoryTypeSdram = 0x0F,
1889 MemoryTypeSgram = 0x10,
1890 MemoryTypeRdram = 0x11,
1891 MemoryTypeDdr = 0x12,
1892 MemoryTypeDdr2 = 0x13,
1893 MemoryTypeDdr2FbDimm = 0x14,
1894 MemoryTypeDdr3 = 0x18,
1895 MemoryTypeFbd2 = 0x19,
1896 MemoryTypeDdr4 = 0x1A,
1897 MemoryTypeLpddr = 0x1B,
1898 MemoryTypeLpddr2 = 0x1C,
1899 MemoryTypeLpddr3 = 0x1D,
1900 MemoryTypeLpddr4 = 0x1E,
1901 MemoryTypeLogicalNonVolatileDevice = 0x1F,
1902 MemoryTypeHBM = 0x20,
1903 MemoryTypeHBM2 = 0x21,
1904 MemoryTypeDdr5 = 0x22,
1905 MemoryTypeLpddr5 = 0x23,
1906 MemoryTypeHBM3 = 0x24
1908
1912typedef struct {
1913 UINT16 Reserved : 1;
1914 UINT16 Other : 1;
1915 UINT16 Unknown : 1;
1916 UINT16 FastPaged : 1;
1917 UINT16 StaticColumn : 1;
1918 UINT16 PseudoStatic : 1;
1919 UINT16 Rambus : 1;
1920 UINT16 Synchronous : 1;
1921 UINT16 Cmos : 1;
1922 UINT16 Edo : 1;
1923 UINT16 WindowDram : 1;
1924 UINT16 CacheDram : 1;
1925 UINT16 Nonvolatile : 1;
1926 UINT16 Registered : 1;
1927 UINT16 Unbuffered : 1;
1928 UINT16 LrDimm : 1;
1930
1934typedef enum {
1935 MemoryTechnologyOther = 0x01,
1936 MemoryTechnologyUnknown = 0x02,
1937 MemoryTechnologyDram = 0x03,
1938 MemoryTechnologyNvdimmN = 0x04,
1939 MemoryTechnologyNvdimmF = 0x05,
1940 MemoryTechnologyNvdimmP = 0x06,
1941 //
1942 // This definition is updated to represent Intel
1943 // Optane DC Persistent Memory in SMBIOS spec 3.4.0
1944 //
1945 MemoryTechnologyIntelOptanePersistentMemory = 0x07
1947
1951typedef union {
1955 struct {
1956 UINT16 Reserved : 1;
1957 UINT16 Other : 1;
1958 UINT16 Unknown : 1;
1959 UINT16 VolatileMemory : 1;
1960 UINT16 ByteAccessiblePersistentMemory : 1;
1961 UINT16 BlockAccessiblePersistentMemory : 1;
1962 UINT16 Reserved2 : 10;
1963 } Bits;
1967 UINT16 Uint16;
1969
1979typedef struct {
1980 SMBIOS_STRUCTURE Hdr;
1981 UINT16 MemoryArrayHandle;
1982 UINT16 MemoryErrorInformationHandle;
1983 UINT16 TotalWidth;
1984 UINT16 DataWidth;
1985 UINT16 Size;
1987 UINT8 DeviceSet;
1988 SMBIOS_TABLE_STRING DeviceLocator;
1989 SMBIOS_TABLE_STRING BankLocator;
1991 MEMORY_DEVICE_TYPE_DETAIL TypeDetail;
1992 UINT16 Speed;
1993 SMBIOS_TABLE_STRING Manufacturer;
1994 SMBIOS_TABLE_STRING SerialNumber;
1995 SMBIOS_TABLE_STRING AssetTag;
1996 SMBIOS_TABLE_STRING PartNumber;
1997 //
1998 // Add for smbios 2.6
1999 //
2000 UINT8 Attributes;
2001 //
2002 // Add for smbios 2.7
2003 //
2004 UINT32 ExtendedSize;
2005 //
2006 // Keep using name "ConfiguredMemoryClockSpeed" for compatibility
2007 // although this field is renamed from "Configured Memory Clock Speed"
2008 // to "Configured Memory Speed" in smbios 3.2.0.
2009 //
2010 UINT16 ConfiguredMemoryClockSpeed;
2011 //
2012 // Add for smbios 2.8.0
2013 //
2014 UINT16 MinimumVoltage;
2015 UINT16 MaximumVoltage;
2016 UINT16 ConfiguredVoltage;
2017 //
2018 // Add for smbios 3.2.0
2019 //
2021 MEMORY_DEVICE_OPERATING_MODE_CAPABILITY MemoryOperatingModeCapability;
2022 SMBIOS_TABLE_STRING FirmwareVersion;
2023 UINT16 ModuleManufacturerID;
2024 UINT16 ModuleProductID;
2025 UINT16 MemorySubsystemControllerManufacturerID;
2026 UINT16 MemorySubsystemControllerProductID;
2027 UINT64 NonVolatileSize;
2028 UINT64 VolatileSize;
2029 UINT64 CacheSize;
2030 UINT64 LogicalSize;
2031 //
2032 // Add for smbios 3.3.0
2033 //
2034 UINT32 ExtendedSpeed;
2035 UINT32 ExtendedConfiguredMemorySpeed;
2036 //
2037 // Add for smbios 3.7.0
2038 //
2039 UINT16 Pmic0ManufacturerID;
2040 UINT16 Pmic0RevisionNumber;
2041 UINT16 RcdManufacturerID;
2042 UINT16 RcdRevisionNumber;
2044
2048typedef enum {
2049 MemoryErrorOther = 0x01,
2050 MemoryErrorUnknown = 0x02,
2051 MemoryErrorOk = 0x03,
2052 MemoryErrorBadRead = 0x04,
2053 MemoryErrorParity = 0x05,
2054 MemoryErrorSigleBit = 0x06,
2055 MemoryErrorDoubleBit = 0x07,
2056 MemoryErrorMultiBit = 0x08,
2057 MemoryErrorNibble = 0x09,
2058 MemoryErrorChecksum = 0x0A,
2059 MemoryErrorCrc = 0x0B,
2060 MemoryErrorCorrectSingleBit = 0x0C,
2061 MemoryErrorCorrected = 0x0D,
2062 MemoryErrorUnCorrectable = 0x0E
2064
2068typedef enum {
2069 MemoryGranularityOther = 0x01,
2070 MemoryGranularityOtherUnknown = 0x02,
2071 MemoryGranularityDeviceLevel = 0x03,
2072 MemoryGranularityMemPartitionLevel = 0x04
2074
2078typedef enum {
2079 MemoryErrorOperationOther = 0x01,
2080 MemoryErrorOperationUnknown = 0x02,
2081 MemoryErrorOperationRead = 0x03,
2082 MemoryErrorOperationWrite = 0x04,
2083 MemoryErrorOperationPartialWrite = 0x05
2085
2092typedef struct {
2093 SMBIOS_STRUCTURE Hdr;
2097 UINT32 VendorSyndrome;
2098 UINT32 MemoryArrayErrorAddress;
2099 UINT32 DeviceErrorAddress;
2100 UINT32 ErrorResolution;
2102
2109typedef struct {
2110 SMBIOS_STRUCTURE Hdr;
2111 UINT32 StartingAddress;
2112 UINT32 EndingAddress;
2113 UINT16 MemoryArrayHandle;
2114 UINT8 PartitionWidth;
2115 //
2116 // Add for smbios 2.7
2117 //
2118 UINT64 ExtendedStartingAddress;
2119 UINT64 ExtendedEndingAddress;
2121
2128typedef struct {
2129 SMBIOS_STRUCTURE Hdr;
2130 UINT32 StartingAddress;
2131 UINT32 EndingAddress;
2132 UINT16 MemoryDeviceHandle;
2133 UINT16 MemoryArrayMappedAddressHandle;
2134 UINT8 PartitionRowPosition;
2135 UINT8 InterleavePosition;
2136 UINT8 InterleavedDataDepth;
2137 //
2138 // Add for smbios 2.7
2139 //
2140 UINT64 ExtendedStartingAddress;
2141 UINT64 ExtendedEndingAddress;
2143
2147typedef enum {
2148 PointingDeviceTypeOther = 0x01,
2149 PointingDeviceTypeUnknown = 0x02,
2150 PointingDeviceTypeMouse = 0x03,
2151 PointingDeviceTypeTrackBall = 0x04,
2152 PointingDeviceTypeTrackPoint = 0x05,
2153 PointingDeviceTypeGlidePoint = 0x06,
2154 PointingDeviceTouchPad = 0x07,
2155 PointingDeviceTouchScreen = 0x08,
2156 PointingDeviceOpticalSensor = 0x09
2158
2162typedef enum {
2163 PointingDeviceInterfaceOther = 0x01,
2164 PointingDeviceInterfaceUnknown = 0x02,
2165 PointingDeviceInterfaceSerial = 0x03,
2166 PointingDeviceInterfacePs2 = 0x04,
2167 PointingDeviceInterfaceInfrared = 0x05,
2168 PointingDeviceInterfaceHpHil = 0x06,
2169 PointingDeviceInterfaceBusMouse = 0x07,
2170 PointingDeviceInterfaceADB = 0x08,
2171 PointingDeviceInterfaceBusMouseDB9 = 0xA0,
2172 PointingDeviceInterfaceBusMouseMicroDin = 0xA1,
2173 PointingDeviceInterfaceUsb = 0xA2,
2174 PointingDeviceInterfaceI2c = 0xA3,
2175 PointingDeviceInterfaceSpi = 0xA4
2177
2185typedef struct {
2186 SMBIOS_STRUCTURE Hdr;
2187 UINT8 Type;
2189 UINT8 NumberOfButtons;
2191
2195typedef enum {
2196 PortableBatteryDeviceChemistryOther = 0x01,
2197 PortableBatteryDeviceChemistryUnknown = 0x02,
2198 PortableBatteryDeviceChemistryLeadAcid = 0x03,
2199 PortableBatteryDeviceChemistryNickelCadmium = 0x04,
2200 PortableBatteryDeviceChemistryNickelMetalHydride = 0x05,
2201 PortableBatteryDeviceChemistryLithiumIon = 0x06,
2202 PortableBatteryDeviceChemistryZincAir = 0x07,
2203 PortableBatteryDeviceChemistryLithiumPolymer = 0x08
2205
2213typedef struct {
2214 SMBIOS_STRUCTURE Hdr;
2215 SMBIOS_TABLE_STRING Location;
2216 SMBIOS_TABLE_STRING Manufacturer;
2217 SMBIOS_TABLE_STRING ManufactureDate;
2218 SMBIOS_TABLE_STRING SerialNumber;
2219 SMBIOS_TABLE_STRING DeviceName;
2221 UINT16 DeviceCapacity;
2222 UINT16 DesignVoltage;
2223 SMBIOS_TABLE_STRING SBDSVersionNumber;
2224 UINT8 MaximumErrorInBatteryData;
2225 UINT16 SBDSSerialNumber;
2226 UINT16 SBDSManufactureDate;
2227 SMBIOS_TABLE_STRING SBDSDeviceChemistry;
2228 UINT8 DesignCapacityMultiplier;
2229 UINT32 OEMSpecific;
2231
2241typedef struct {
2242 SMBIOS_STRUCTURE Hdr;
2243 UINT8 Capabilities;
2244 UINT16 ResetCount;
2245 UINT16 ResetLimit;
2246 UINT16 TimerInterval;
2247 UINT16 Timeout;
2249
2255typedef struct {
2256 SMBIOS_STRUCTURE Hdr;
2257 UINT8 HardwareSecuritySettings;
2259
2268typedef struct {
2269 SMBIOS_STRUCTURE Hdr;
2270 UINT8 NextScheduledPowerOnMonth;
2271 UINT8 NextScheduledPowerOnDayOfMonth;
2272 UINT8 NextScheduledPowerOnHour;
2273 UINT8 NextScheduledPowerOnMinute;
2274 UINT8 NextScheduledPowerOnSecond;
2276
2280typedef struct {
2281 UINT8 VoltageProbeSite : 5;
2282 UINT8 VoltageProbeStatus : 3;
2284
2291typedef struct {
2292 SMBIOS_STRUCTURE Hdr;
2293 SMBIOS_TABLE_STRING Description;
2294 MISC_VOLTAGE_PROBE_LOCATION LocationAndStatus;
2295 UINT16 MaximumValue;
2296 UINT16 MinimumValue;
2297 UINT16 Resolution;
2298 UINT16 Tolerance;
2299 UINT16 Accuracy;
2300 UINT32 OEMDefined;
2301 UINT16 NominalValue;
2303
2307typedef struct {
2308 UINT8 CoolingDevice : 5;
2309 UINT8 CoolingDeviceStatus : 3;
2311
2318typedef struct {
2319 SMBIOS_STRUCTURE Hdr;
2320 UINT16 TemperatureProbeHandle;
2321 MISC_COOLING_DEVICE_TYPE DeviceTypeAndStatus;
2322 UINT8 CoolingUnitGroup;
2323 UINT32 OEMDefined;
2324 UINT16 NominalSpeed;
2325 //
2326 // Add for smbios 2.7
2327 //
2328 SMBIOS_TABLE_STRING Description;
2330
2334typedef struct {
2335 UINT8 TemperatureProbeSite : 5;
2336 UINT8 TemperatureProbeStatus : 3;
2338
2345typedef struct {
2346 SMBIOS_STRUCTURE Hdr;
2347 SMBIOS_TABLE_STRING Description;
2348 MISC_TEMPERATURE_PROBE_LOCATION LocationAndStatus;
2349 UINT16 MaximumValue;
2350 UINT16 MinimumValue;
2351 UINT16 Resolution;
2352 UINT16 Tolerance;
2353 UINT16 Accuracy;
2354 UINT32 OEMDefined;
2355 UINT16 NominalValue;
2357
2361typedef struct {
2362 UINT8 ElectricalCurrentProbeSite : 5;
2363 UINT8 ElectricalCurrentProbeStatus : 3;
2365
2372typedef struct {
2373 SMBIOS_STRUCTURE Hdr;
2374 SMBIOS_TABLE_STRING Description;
2376 UINT16 MaximumValue;
2377 UINT16 MinimumValue;
2378 UINT16 Resolution;
2379 UINT16 Tolerance;
2380 UINT16 Accuracy;
2381 UINT32 OEMDefined;
2382 UINT16 NominalValue;
2384
2392typedef struct {
2393 SMBIOS_STRUCTURE Hdr;
2394 SMBIOS_TABLE_STRING ManufacturerName;
2395 UINT8 Connections;
2397
2403typedef struct {
2404 SMBIOS_STRUCTURE Hdr;
2405 UINT8 Checksum;
2406 UINT8 Reserved1;
2407 UINT16 Reserved2;
2408 UINT32 BisEntry16;
2409 UINT32 BisEntry32;
2410 UINT64 Reserved3;
2411 UINT32 Reserved4;
2413
2417typedef enum {
2418 BootInformationStatusNoError = 0x00,
2419 BootInformationStatusNoBootableMedia = 0x01,
2420 BootInformationStatusNormalOSFailedLoading = 0x02,
2421 BootInformationStatusFirmwareDetectedFailure = 0x03,
2422 BootInformationStatusOSDetectedFailure = 0x04,
2423 BootInformationStatusUserRequestedBoot = 0x05,
2424 BootInformationStatusSystemSecurityViolation = 0x06,
2425 BootInformationStatusPreviousRequestedImage = 0x07,
2426 BootInformationStatusWatchdogTimerExpired = 0x08,
2427 BootInformationStatusStartReserved = 0x09,
2428 BootInformationStatusStartOemSpecific = 0x80,
2429 BootInformationStatusStartProductSpecific = 0xC0
2431
2443typedef struct {
2444 SMBIOS_STRUCTURE Hdr;
2445 UINT8 Reserved[6];
2448
2455typedef struct {
2456 SMBIOS_STRUCTURE Hdr;
2460 UINT32 VendorSyndrome;
2461 UINT64 MemoryArrayErrorAddress;
2462 UINT64 DeviceErrorAddress;
2463 UINT32 ErrorResolution;
2465
2469typedef enum {
2470 ManagementDeviceTypeOther = 0x01,
2471 ManagementDeviceTypeUnknown = 0x02,
2472 ManagementDeviceTypeLm75 = 0x03,
2473 ManagementDeviceTypeLm78 = 0x04,
2474 ManagementDeviceTypeLm79 = 0x05,
2475 ManagementDeviceTypeLm80 = 0x06,
2476 ManagementDeviceTypeLm81 = 0x07,
2477 ManagementDeviceTypeAdm9240 = 0x08,
2478 ManagementDeviceTypeDs1780 = 0x09,
2479 ManagementDeviceTypeMaxim1617 = 0x0A,
2480 ManagementDeviceTypeGl518Sm = 0x0B,
2481 ManagementDeviceTypeW83781D = 0x0C,
2482 ManagementDeviceTypeHt82H791 = 0x0D
2484
2488typedef enum {
2489 ManagementDeviceAddressTypeOther = 0x01,
2490 ManagementDeviceAddressTypeUnknown = 0x02,
2491 ManagementDeviceAddressTypeIOPort = 0x03,
2492 ManagementDeviceAddressTypeMemory = 0x04,
2493 ManagementDeviceAddressTypeSmbus = 0x05
2495
2503typedef struct {
2504 SMBIOS_STRUCTURE Hdr;
2505 SMBIOS_TABLE_STRING Description;
2506 UINT8 Type;
2507 UINT32 Address;
2510
2517typedef struct {
2518 SMBIOS_STRUCTURE Hdr;
2519 SMBIOS_TABLE_STRING Description;
2520 UINT16 ManagementDeviceHandle;
2521 UINT16 ComponentHandle;
2522 UINT16 ThresholdHandle;
2524
2531typedef struct {
2532 SMBIOS_STRUCTURE Hdr;
2533 UINT16 LowerThresholdNonCritical;
2534 UINT16 UpperThresholdNonCritical;
2535 UINT16 LowerThresholdCritical;
2536 UINT16 UpperThresholdCritical;
2537 UINT16 LowerThresholdNonRecoverable;
2538 UINT16 UpperThresholdNonRecoverable;
2540
2544typedef struct {
2545 UINT8 DeviceLoad;
2546 UINT16 DeviceHandle;
2548
2552typedef enum {
2553 MemoryChannelTypeOther = 0x01,
2554 MemoryChannelTypeUnknown = 0x02,
2555 MemoryChannelTypeRambus = 0x03,
2556 MemoryChannelTypeSyncLink = 0x04
2558
2566typedef struct {
2567 SMBIOS_STRUCTURE Hdr;
2568 UINT8 ChannelType;
2569 UINT8 MaximumChannelLoad;
2570 UINT8 MemoryDeviceCount;
2571 MEMORY_DEVICE MemoryDevice[1];
2573
2577typedef enum {
2578 IPMIDeviceInfoInterfaceTypeUnknown = 0x00,
2584
2596typedef struct {
2597 SMBIOS_STRUCTURE Hdr;
2599 UINT8 IPMISpecificationRevision;
2600 UINT8 I2CSlaveAddress;
2601 UINT8 NVStorageDeviceAddress;
2602 UINT64 BaseAddress;
2603 UINT8 BaseAddressModifier_InterruptInfo;
2604 UINT8 InterruptNumber;
2606
2610typedef struct {
2611 UINT16 PowerSupplyHotReplaceable : 1;
2612 UINT16 PowerSupplyPresent : 1;
2613 UINT16 PowerSupplyUnplugged : 1;
2614 UINT16 InputVoltageRangeSwitch : 4;
2615 UINT16 PowerSupplyStatus : 3;
2616 UINT16 PowerSupplyType : 4;
2617 UINT16 Reserved : 2;
2619
2626typedef struct {
2627 SMBIOS_STRUCTURE Hdr;
2628 UINT8 PowerUnitGroup;
2629 SMBIOS_TABLE_STRING Location;
2630 SMBIOS_TABLE_STRING DeviceName;
2631 SMBIOS_TABLE_STRING Manufacturer;
2632 SMBIOS_TABLE_STRING SerialNumber;
2633 SMBIOS_TABLE_STRING AssetTagNumber;
2634 SMBIOS_TABLE_STRING ModelPartNumber;
2635 SMBIOS_TABLE_STRING RevisionLevel;
2636 UINT16 MaxPowerCapacity;
2637 SYS_POWER_SUPPLY_CHARACTERISTICS PowerSupplyCharacteristics;
2638 UINT16 InputVoltageProbeHandle;
2639 UINT16 CoolingDeviceHandle;
2640 UINT16 InputCurrentProbeHandle;
2642
2646typedef struct {
2647 UINT8 EntryLength;
2648 UINT16 ReferencedHandle;
2649 UINT8 ReferencedOffset;
2650 SMBIOS_TABLE_STRING EntryString;
2651 UINT8 Value[1];
2653
2660typedef struct {
2661 SMBIOS_STRUCTURE Hdr;
2662 UINT8 NumberOfAdditionalInformationEntries;
2663 ADDITIONAL_INFORMATION_ENTRY AdditionalInfoEntries[1];
2665
2669typedef enum {
2670 OnBoardDeviceExtendedTypeOther = 0x01,
2671 OnBoardDeviceExtendedTypeUnknown = 0x02,
2672 OnBoardDeviceExtendedTypeVideo = 0x03,
2673 OnBoardDeviceExtendedTypeScsiController = 0x04,
2674 OnBoardDeviceExtendedTypeEthernet = 0x05,
2675 OnBoardDeviceExtendedTypeTokenRing = 0x06,
2676 OnBoardDeviceExtendedTypeSound = 0x07,
2677 OnBoardDeviceExtendedTypePATAController = 0x08,
2678 OnBoardDeviceExtendedTypeSATAController = 0x09,
2679 OnBoardDeviceExtendedTypeSASController = 0x0A,
2680 OnBoardDeviceExtendedTypeWirelessLAN = 0x0B,
2681 OnBoardDeviceExtendedTypeBluetooth = 0x0C,
2682 OnBoardDeviceExtendedTypeWWAN = 0x0D,
2683 OnBoardDeviceExtendedTypeeMMC = 0x0E,
2684 OnBoardDeviceExtendedTypeNvme = 0x0F,
2685 OnBoardDeviceExtendedTypeUfc = 0x10
2687
2696typedef struct {
2697 SMBIOS_STRUCTURE Hdr;
2698 SMBIOS_TABLE_STRING ReferenceDesignation;
2700 UINT8 DeviceTypeInstance;
2701 UINT16 SegmentGroupNum;
2702 UINT8 BusNum;
2703 UINT8 DevFuncNum;
2705
2709typedef struct {
2710 UINT8 ProtocolType;
2711 UINT8 ProtocolTypeDataLen;
2712 UINT8 ProtocolTypeData[1];
2714
2719typedef enum {
2720 MCHostInterfaceTypeNetworkHostInterface = 0x40,
2721 MCHostInterfaceTypeOemDefined = 0xF0
2723
2727typedef enum {
2728 MCHostInterfaceProtocolTypeIPMI = 0x02,
2729 MCHostInterfaceProtocolTypeMCTP = 0x03,
2730 MCHostInterfaceProtocolTypeRedfishOverIP = 0x04,
2731 MCHostInterfaceProtocolTypeOemDefined = 0xF0
2733
2751typedef struct {
2752 SMBIOS_STRUCTURE Hdr;
2754 UINT8 InterfaceTypeSpecificDataLength;
2755 UINT8 InterfaceTypeSpecificData[4];
2757
2761typedef enum {
2762 ProcessorSpecificBlockArchTypeReserved = 0x00,
2763 ProcessorSpecificBlockArchTypeIa32 = 0x01,
2764 ProcessorSpecificBlockArchTypeX64 = 0x02,
2765 ProcessorSpecificBlockArchTypeItanium = 0x03,
2766 ProcessorSpecificBlockArchTypeAarch32 = 0x04,
2767 ProcessorSpecificBlockArchTypeAarch64 = 0x05,
2768 ProcessorSpecificBlockArchTypeRiscVRV32 = 0x06,
2769 ProcessorSpecificBlockArchTypeRiscVRV64 = 0x07,
2770 ProcessorSpecificBlockArchTypeRiscVRV128 = 0x08,
2771 ProcessorSpecificBlockArchTypeLoongArch32 = 0x09,
2772 ProcessorSpecificBlockArchTypeLoongArch64 = 0x0A
2774
2778typedef struct {
2779 UINT8 Length;
2780 UINT8 ProcessorArchType;
2786
2801typedef struct {
2802 SMBIOS_STRUCTURE Hdr;
2809
2813typedef struct {
2814 SMBIOS_STRUCTURE Hdr;
2815 UINT8 VendorID[4];
2816 UINT8 MajorSpecVersion;
2817 UINT8 MinorSpecVersion;
2818 UINT32 FirmwareVersion1;
2819 UINT32 FirmwareVersion2;
2820 SMBIOS_TABLE_STRING Description;
2821 UINT64 Characteristics;
2822 UINT32 OemDefined;
2824
2828typedef enum {
2829 VersionFormatTypeFreeForm = 0x00,
2830 VersionFormatTypeMajorMinor = 0x01,
2831 VersionFormatType32BitHex = 0x02,
2832 VersionFormatType64BitHex = 0x03,
2833 VersionFormatTypeReserved = 0x04,
2834 VersionFormatTypeOem = 0x80
2836
2840typedef enum {
2841 FirmwareIdFormatTypeFreeForm = 0x00,
2842 FirmwareIdFormatTypeUuid = 0x01,
2843 FirmwareIdFormatTypeReserved = 0x04,
2846
2850typedef struct {
2851 UINT16 Updatable : 1;
2852 UINT16 WriteProtected : 1;
2853 UINT16 Reserved : 14;
2855
2859typedef enum {
2860 FirmwareInventoryStateOther = 0x01,
2861 FirmwareInventoryStateUnknown = 0x02,
2862 FirmwareInventoryStateDisabled = 0x03,
2863 FirmwareInventoryStateEnabled = 0x04,
2864 FirmwareInventoryStateAbsent = 0x05,
2865 FirmwareInventoryStateStandbyOffline = 0x06,
2866 FirmwareInventoryStateStandbySpare = 0x07,
2867 FirmwareInventoryStateUnavailableOffline = 0x08
2869
2883typedef struct {
2884 SMBIOS_STRUCTURE Hdr;
2885 SMBIOS_TABLE_STRING FirmwareComponentName;
2886 SMBIOS_TABLE_STRING FirmwareVersion;
2888 SMBIOS_TABLE_STRING FirmwareId;
2890 SMBIOS_TABLE_STRING ReleaseDate;
2891 SMBIOS_TABLE_STRING Manufacturer;
2892 SMBIOS_TABLE_STRING LowestSupportedVersion;
2893 UINT64 ImageSize;
2894 FIRMWARE_CHARACTERISTICS Characteristics;
2895 UINT8 State;
2896 UINT8 AssociatedComponentCount;
2902
2906typedef enum {
2907 StringPropertyIdNone = 0x0000,
2908 StringPropertyIdDevicePath = 0x0001,
2909 StringPropertyIdReserved = 0x0002,
2911 StringPropertyIdOem = 0xC000
2913
2921typedef struct {
2922 SMBIOS_STRUCTURE Hdr;
2924 SMBIOS_TABLE_STRING StringPropertyValue;
2925 SMBIOS_HANDLE ParentHandle;
2927
2931typedef struct {
2932 SMBIOS_STRUCTURE Hdr;
2934
2938typedef struct {
2939 SMBIOS_STRUCTURE Hdr;
2941
2945typedef union {
2946 SMBIOS_STRUCTURE *Hdr;
2947 SMBIOS_TABLE_TYPE0 *Type0;
2948 SMBIOS_TABLE_TYPE1 *Type1;
2949 SMBIOS_TABLE_TYPE2 *Type2;
2950 SMBIOS_TABLE_TYPE3 *Type3;
2951 SMBIOS_TABLE_TYPE4 *Type4;
2952 SMBIOS_TABLE_TYPE5 *Type5;
2953 SMBIOS_TABLE_TYPE6 *Type6;
2954 SMBIOS_TABLE_TYPE7 *Type7;
2955 SMBIOS_TABLE_TYPE8 *Type8;
2956 SMBIOS_TABLE_TYPE9 *Type9;
2957 SMBIOS_TABLE_TYPE10 *Type10;
2958 SMBIOS_TABLE_TYPE11 *Type11;
2959 SMBIOS_TABLE_TYPE12 *Type12;
2960 SMBIOS_TABLE_TYPE13 *Type13;
2961 SMBIOS_TABLE_TYPE14 *Type14;
2962 SMBIOS_TABLE_TYPE15 *Type15;
2963 SMBIOS_TABLE_TYPE16 *Type16;
2964 SMBIOS_TABLE_TYPE17 *Type17;
2965 SMBIOS_TABLE_TYPE18 *Type18;
2966 SMBIOS_TABLE_TYPE19 *Type19;
2967 SMBIOS_TABLE_TYPE20 *Type20;
2968 SMBIOS_TABLE_TYPE21 *Type21;
2969 SMBIOS_TABLE_TYPE22 *Type22;
2970 SMBIOS_TABLE_TYPE23 *Type23;
2971 SMBIOS_TABLE_TYPE24 *Type24;
2972 SMBIOS_TABLE_TYPE25 *Type25;
2973 SMBIOS_TABLE_TYPE26 *Type26;
2974 SMBIOS_TABLE_TYPE27 *Type27;
2975 SMBIOS_TABLE_TYPE28 *Type28;
2976 SMBIOS_TABLE_TYPE29 *Type29;
2977 SMBIOS_TABLE_TYPE30 *Type30;
2978 SMBIOS_TABLE_TYPE31 *Type31;
2979 SMBIOS_TABLE_TYPE32 *Type32;
2980 SMBIOS_TABLE_TYPE33 *Type33;
2981 SMBIOS_TABLE_TYPE34 *Type34;
2982 SMBIOS_TABLE_TYPE35 *Type35;
2983 SMBIOS_TABLE_TYPE36 *Type36;
2984 SMBIOS_TABLE_TYPE37 *Type37;
2985 SMBIOS_TABLE_TYPE38 *Type38;
2986 SMBIOS_TABLE_TYPE39 *Type39;
2987 SMBIOS_TABLE_TYPE40 *Type40;
2988 SMBIOS_TABLE_TYPE41 *Type41;
2989 SMBIOS_TABLE_TYPE42 *Type42;
2990 SMBIOS_TABLE_TYPE43 *Type43;
2991 SMBIOS_TABLE_TYPE44 *Type44;
2992 SMBIOS_TABLE_TYPE45 *Type45;
2993 SMBIOS_TABLE_TYPE46 *Type46;
2994 SMBIOS_TABLE_TYPE126 *Type126;
2995 SMBIOS_TABLE_TYPE127 *Type127;
2996 UINT8 *Raw;
2998
2999#pragma pack()
3000
3001#endif
MEMORY_ERROR_DETECT_METHOD
Definition: SmBios.h:1034
MEMORY_ERROR_CORRECTION
Definition: SmBios.h:1818
MEMORY_CHANNEL_TYPE
Definition: SmBios.h:2552
MISC_SLOT_INFORMATION
Definition: SmBios.h:1478
MISC_ONBOARD_DEVICE_TYPE
Definition: SmBios.h:1612
MEMORY_ERROR_GRANULARITY
Definition: SmBios.h:2068
FIRMWARE_INVENTORY_FIRMWARE_ID_FORMAT_TYPE
Definition: SmBios.h:2840
@ InventoryFirmwareIdFormatTypeOem
0x04 - 0x7F are reserved
Definition: SmBios.h:2844
MISC_SYSTEM_WAKEUP_TYPE
Definition: SmBios.h:323
MEMORY_DEVICE_TYPE
Definition: SmBios.h:1873
BMC_INTERFACE_TYPE
Definition: SmBios.h:2577
@ IPMIDeviceInfoInterfaceTypeSMIC
The Server Management Interface Chip.
Definition: SmBios.h:2580
@ IPMIDeviceInfoInterfaceTypeBT
The Block Transfer.
Definition: SmBios.h:2581
@ IPMIDeviceInfoInterfaceTypeKCS
The Keyboard Controller Style.
Definition: SmBios.h:2579
@ IPMIDeviceInfoInterfaceTypeSSIF
SMBus System Interface.
Definition: SmBios.h:2582
BASE_BOARD_TYPE
Definition: SmBios.h:370
MISC_MANAGEMENT_DEVICE_TYPE
Definition: SmBios.h:2469
MISC_SLOT_USAGE
Definition: SmBios.h:1491
MISC_SLOT_PHYSICAL_WIDTH
Definition: SmBios.h:1458
@ SlotPhysicalWidth12X
Or X12.
Definition: SmBios.h:1470
@ SlotPhysicalWidth8X
Or X8.
Definition: SmBios.h:1469
@ SlotPhysicalWidth1X
Or X1.
Definition: SmBios.h:1466
@ SlotPhysicalWidth2X
Or X2.
Definition: SmBios.h:1467
@ SlotPhysicalWidth32X
Or X32.
Definition: SmBios.h:1472
@ SlotPhysicalWidth16X
Or X16.
Definition: SmBios.h:1471
@ SlotPhysicalWidth4X
Or X4.
Definition: SmBios.h:1468
PROCESSOR_FAMILY2_DATA
Definition: SmBios.h:745
MC_HOST_INTERFACE_PROTOCOL_TYPE
Definition: SmBios.h:2727
MISC_BOOT_INFORMATION_STATUS_DATA_TYPE
Definition: SmBios.h:2417
MISC_CHASSIS_SECURITY_STATE
Definition: SmBios.h:464
MISC_PORT_CONNECTOR_TYPE
Definition: SmBios.h:1244
MEMORY_DEVICE_TECHNOLOGY
Definition: SmBios.h:1934
PROCESSOR_TYPE_DATA
Definition: SmBios.h:523
MISC_CHASSIS_STATE
Definition: SmBios.h:452
PROCESSOR_UPGRADE
Definition: SmBios.h:804
@ ProcessorUpgradeSocketA
Socket 462.
Definition: SmBios.h:818
@ ProcessorUpgradePiggyBack
Replaceable.
Definition: SmBios.h:809
@ ProcessorUpgradeSocketLGA1155
SMBIOS spec 2.8.0 updated the name.
Definition: SmBios.h:840
EVENT_LOG_VARIABLE_DATA
Definition: SmBios.h:1738
BUILTIN_POINTING_DEVICE_INTERFACE
Definition: SmBios.h:2162
MISC_PORT_TYPE
Definition: SmBios.h:1292
@ PortTypeMfdp
Multi-Function Display Port.
Definition: SmBios.h:1327
BUILTIN_POINTING_DEVICE_TYPE
Definition: SmBios.h:2147
MISC_SLOT_DATA_BUS_WIDTH
Definition: SmBios.h:1438
@ SlotDataBusWidth12X
Or X12.
Definition: SmBios.h:1450
@ SlotDataBusWidth16X
Or X16.
Definition: SmBios.h:1451
@ SlotDataBusWidth1X
Or X1.
Definition: SmBios.h:1446
@ SlotDataBusWidth8X
Or X8.
Definition: SmBios.h:1449
@ SlotDataBusWidth32X
Or X32.
Definition: SmBios.h:1452
@ SlotDataBusWidth2X
Or X2.
Definition: SmBios.h:1447
@ SlotDataBusWidth4X
Or X4.
Definition: SmBios.h:1448
PROCESSOR_SPECIFIC_BLOCK_ARCH_TYPE
Definition: SmBios.h:2761
FIRMWARE_INVENTORY_STATE
Definition: SmBios.h:2859
MISC_MANAGEMENT_DEVICE_ADDRESS_TYPE
Definition: SmBios.h:2488
MEMORY_ERROR_TYPE
Definition: SmBios.h:2048
UINT16 SMBIOS_HANDLE
Definition: SmBios.h:152
PROCESSOR_FAMILY_DATA
Definition: SmBios.h:535
@ ProcessorFamilyIntelCoreSolo
SMBIOS spec 2.6 updated this value.
Definition: SmBios.h:690
@ ProcessorFamilyViaC7M
Smbios spec 3.8 updated this value.
Definition: SmBios.h:710
@ ProcessorFamilyAmdASeries
SMBIOS spec 2.8.0 updated the name.
Definition: SmBios.h:606
UINT8 SMBIOS_TABLE_STRING
Definition: SmBios.h:208
MEMORY_ARRAY_LOCATION
Definition: SmBios.h:1784
MISC_SLOT_HEIGHT
Definition: SmBios.h:1539
MISC_SLOT_LENGTH
Definition: SmBios.h:1502
CACHE_ERROR_TYPE_DATA
Definition: SmBios.h:1174
@ CacheErrorMultiBit
ECC.
Definition: SmBios.h:1180
@ CacheErrorSingleBit
ECC.
Definition: SmBios.h:1179
MEMORY_SUPPORT_INTERLEAVE_TYPE
Definition: SmBios.h:1061
CACHE_TYPE_DATA
Definition: SmBios.h:1186
PORTABLE_BATTERY_DEVICE_CHEMISTRY
Definition: SmBios.h:2195
MISC_SLOT_TYPE
Definition: SmBios.h:1353
@ SlotTypeOCPNIC30LargeFormFactor
LFF.
Definition: SmBios.h:1392
@ SlotTypePCIExpressGen5SFF_8639
U.2.
Definition: SmBios.h:1390
@ SlotTypePCIExpressGen4SFF_8639
U.2.
Definition: SmBios.h:1389
@ SlotTypePciExpressMini52pinWithBSKO
PCI Express Mini 52-pin (CEM spec. 2.0) with bottom-side keep-outs.
Definition: SmBios.h:1386
@ SlotTypePciExpressMini76pin
PCI Express Mini 76-pin (CEM spec. 2.0) Corresponds to Display-Mini card.
Definition: SmBios.h:1388
@ SlotTypePciExpressMini52pinWithoutBSKO
PCI Express Mini 52-pin (CEM spec. 2.0) without bottom-side keep-outs.
Definition: SmBios.h:1387
@ SlotTypeOCPNIC30SmallFormFactor
SFF.
Definition: SmBios.h:1391
MC_HOST_INTERFACE_TYPE
Definition: SmBios.h:2719
ONBOARD_DEVICE_EXTENDED_INFO_TYPE
Definition: SmBios.h:2669
MEMORY_FORM_FACTOR
Definition: SmBios.h:1851
FIRMWARE_INVENTORY_VERSION_FORMAT_TYPE
Definition: SmBios.h:2828
@ VersionFormatTypeOem
0x04 - 0x7F are reserved
Definition: SmBios.h:2834
UINT8 SMBIOS_TYPE
Definition: SmBios.h:140
STRING_PROPERTY_ID
Definition: SmBios.h:2906
@ StringPropertyIdOem
BIOS vendor 0x8000 - 0xBFFF.
Definition: SmBios.h:2911
@ StringPropertyIdBiosVendor
Reserved 0x0002 - 0x7FFF.
Definition: SmBios.h:2910
MISC_CHASSIS_TYPE
Definition: SmBios.h:410
EVENT_LOG_TYPE_DATA
Definition: SmBios.h:1706
@ EventLogTypeAvailForSys
0x80 - 0xFE
Definition: SmBios.h:1731
@ EventLogTypeUnused
0x18 - 0x7F
Definition: SmBios.h:1730
MEMORY_ERROR_OPERATION
Definition: SmBios.h:2078
MEMORY_ARRAY_USE
Definition: SmBios.h:1805
CACHE_ASSOCIATIVITY_DATA
Definition: SmBios.h:1197
UINT8 DeviceType
Definition: SmBios.h:1629
UINT8 LogType
The enumeration value from EVENT_LOG_TYPE_DATA.
Definition: SmBios.h:1754
Definition: Base.h:213
UINT8 InstalledOrEnabledSize
Size (n), where 2**n is the size in MB.
Definition: SmBios.h:1131
UINT32 Reserved
Bits 0-1.
Definition: SmBios.h:215
UINT8 ProcessorVoltageReserved
Bits 4-6, must be zero.
Definition: SmBios.h:797
UINT8 ProcessorVoltageCapabilityReserved
Bit 3, must be zero.
Definition: SmBios.h:796
UINT8 Use
The enumeration value from MEMORY_ARRAY_USE.
Definition: SmBios.h:1837
UINT8 MemoryErrorCorrection
The enumeration value from MEMORY_ERROR_CORRECTION.
Definition: SmBios.h:1838
UINT8 Location
The enumeration value from MEMORY_ARRAY_LOCATION.
Definition: SmBios.h:1836
UINT8 MemoryType
The enumeration value from MEMORY_DEVICE_TYPE.
Definition: SmBios.h:1990
UINT8 FormFactor
The enumeration value from MEMORY_FORM_FACTOR.
Definition: SmBios.h:1986
UINT8 MemoryTechnology
The enumeration value from MEMORY_DEVICE_TECHNOLOGY.
Definition: SmBios.h:2020
UINT8 ErrorGranularity
The enumeration value from MEMORY_ERROR_GRANULARITY.
Definition: SmBios.h:2095
UINT8 ErrorType
The enumeration value from MEMORY_ERROR_TYPE.
Definition: SmBios.h:2094
UINT8 ErrorOperation
The enumeration value from MEMORY_ERROR_OPERATION.
Definition: SmBios.h:2096
UINT8 WakeUpType
The enumeration value from MISC_SYSTEM_WAKEUP_TYPE.
Definition: SmBios.h:350
UINT8 Type
The enumeration value from BUILTIN_POINTING_DEVICE_TYPE.
Definition: SmBios.h:2187
UINT8 Interface
The enumeration value from BUILTIN_POINTING_DEVICE_INTERFACE.
Definition: SmBios.h:2188
UINT8 DeviceChemistry
The enumeration value from PORTABLE_BATTERY_DEVICE_CHEMISTRY.
Definition: SmBios.h:2220
UINT8 BoardType
The enumeration value from BASE_BOARD_TYPE.
Definition: SmBios.h:402
UINT8 BootStatus
The enumeration value from MISC_BOOT_INFORMATION_STATUS_DATA_TYPE.
Definition: SmBios.h:2446
UINT8 ErrorGranularity
The enumeration value from MEMORY_ERROR_GRANULARITY.
Definition: SmBios.h:2458
UINT8 ErrorType
The enumeration value from MEMORY_ERROR_TYPE.
Definition: SmBios.h:2457
UINT8 ErrorOperation
The enumeration value from MEMORY_ERROR_OPERATION.
Definition: SmBios.h:2459
UINT8 AddressType
The enumeration value from MISC_MANAGEMENT_DEVICE_ADDRESS_TYPE.
Definition: SmBios.h:2508
UINT8 Type
The enumeration value from MISC_MANAGEMENT_DEVICE_TYPE.
Definition: SmBios.h:2506
UINT8 InterfaceType
The enumeration value from BMC_INTERFACE_TYPE.
Definition: SmBios.h:2598
UINT8 SecurityStatus
The enumeration value from MISC_CHASSIS_SECURITY_STATE.
Definition: SmBios.h:500
UINT8 ThermalState
The enumeration value from MISC_CHASSIS_STATE.
Definition: SmBios.h:499
UINT8 BootupState
The enumeration value from MISC_CHASSIS_STATE.
Definition: SmBios.h:497
UINT8 PowerSupplyState
The enumeration value from MISC_CHASSIS_STATE.
Definition: SmBios.h:498
UINT8 DeviceType
The enumeration value from ONBOARD_DEVICE_EXTENDED_INFO_TYPE.
Definition: SmBios.h:2699
UINT8 InterfaceType
The enumeration value from MC_HOST_INTERFACE_TYPE.
Definition: SmBios.h:2753
SMBIOS_HANDLE RefHandle
Definition: SmBios.h:2803
PROCESSOR_SPECIFIC_BLOCK ProcessorSpecificBlock
Definition: SmBios.h:2807
UINT8 FirmwareIdFormat
The enumeration value from FIRMWARE_INVENTORY_FIRMWARE_ID_FORMAT_TYPE.
Definition: SmBios.h:2889
UINT8 FirmwareVersionFormat
The enumeration value from FIRMWARE_INVENTORY_VERSION_FORMAT_TYPE.
Definition: SmBios.h:2887
UINT8 State
The enumeration value from FIRMWARE_INVENTORY_STATE.
Definition: SmBios.h:2895
UINT16 StringPropertyId
The enumeration value from STRING_PROPERTY_ID.
Definition: SmBios.h:2923
UINT8 ProcessorUpgrade
The enumeration value from PROCESSOR_UPGRADE.
Definition: SmBios.h:997
UINT8 ProcessorType
The enumeration value from PROCESSOR_TYPE_DATA.
Definition: SmBios.h:987
UINT8 ProcessorFamily
The enumeration value from PROCESSOR_FAMILY_DATA.
Definition: SmBios.h:988
UINT8 SupportInterleave
The enumeration value from MEMORY_SUPPORT_INTERLEAVE_TYPE.
Definition: SmBios.h:1099
UINT8 ErrDetectMethod
The enumeration value from MEMORY_ERROR_DETECT_METHOD.
Definition: SmBios.h:1097
UINT8 CurrentInterleave
The enumeration value from MEMORY_SUPPORT_INTERLEAVE_TYPE .
Definition: SmBios.h:1100
UINT8 SystemCacheType
The enumeration value from CACHE_TYPE_DATA.
Definition: SmBios.h:1232
UINT8 Associativity
The enumeration value from CACHE_ASSOCIATIVITY_DATA.
Definition: SmBios.h:1233
UINT8 ErrorCorrectionType
The enumeration value from CACHE_ERROR_TYPE_DATA.
Definition: SmBios.h:1231
UINT8 PortType
The enumeration value from MISC_PORT_TYPE.
Definition: SmBios.h:1347
UINT8 ExternalConnectorType
The enumeration value from MISC_PORT_CONNECTOR_TYPE.
Definition: SmBios.h:1346
UINT8 InternalConnectorType
The enumeration value from MISC_PORT_CONNECTOR_TYPE.
Definition: SmBios.h:1344
UINT8 SlotHeight
The enumeration value from MISC_SLOT_HEIGHT.
Definition: SmBios.h:1606
UINT8 SlotType
The enumeration value from MISC_SLOT_TYPE.
Definition: SmBios.h:1567
UINT8 SlotDataBusWidth
The enumeration value from MISC_SLOT_DATA_BUS_WIDTH.
Definition: SmBios.h:1568
UINT8 CurrentUsage
The enumeration value from MISC_SLOT_USAGE.
Definition: SmBios.h:1569
UINT8 SlotLength
The enumeration value from MISC_SLOT_LENGTH.
Definition: SmBios.h:1570
UINT8 CpuStatus
Indicates the status of the processor.
Definition: SmBios.h:962
UINT8 SocketPopulated
Indicates if the processor socket is populated or not.
Definition: SmBios.h:964
UINT8 Reserved1
Reserved for future use. Must be set to zero.
Definition: SmBios.h:963
UINT8 Reserved2
Reserved for future use. Must be set to zero.
Definition: SmBios.h:965