TianoCore EDK2 master
SmBios.h
Go to the documentation of this file.
1
12#ifndef __SMBIOS_STANDARD_H__
13#define __SMBIOS_STANDARD_H__
14
20#define SMBIOS_HANDLE_RESERVED_BEGIN 0xFF00
21
28#define SMBIOS_HANDLE_PI_RESERVED 0xFFFE
29
36#define SMBIOS_STRING_MAX_LENGTH 64
37
38//
39// The length of the entire structure table (including all strings) must be reported
40// in the Structure Table Length field of the SMBIOS Structure Table Entry Point,
41// which is a WORD field limited to 65,535 bytes.
42//
43#define SMBIOS_TABLE_MAX_LENGTH 0xFFFF
44
45//
46// For SMBIOS 3.0, Structure table maximum size in Entry Point structure is DWORD field limited to 0xFFFFFFFF bytes.
47//
48#define SMBIOS_3_0_TABLE_MAX_LENGTH 0xFFFFFFFF
49
50//
51// SMBIOS type macros which is according to SMBIOS 3.3.0 specification.
52//
53#define SMBIOS_TYPE_BIOS_INFORMATION 0
54#define SMBIOS_TYPE_SYSTEM_INFORMATION 1
55#define SMBIOS_TYPE_BASEBOARD_INFORMATION 2
56#define SMBIOS_TYPE_SYSTEM_ENCLOSURE 3
57#define SMBIOS_TYPE_PROCESSOR_INFORMATION 4
58#define SMBIOS_TYPE_MEMORY_CONTROLLER_INFORMATION 5
59#define SMBIOS_TYPE_MEMORY_MODULE_INFORMATON 6
60#define SMBIOS_TYPE_CACHE_INFORMATION 7
61#define SMBIOS_TYPE_PORT_CONNECTOR_INFORMATION 8
62#define SMBIOS_TYPE_SYSTEM_SLOTS 9
63#define SMBIOS_TYPE_ONBOARD_DEVICE_INFORMATION 10
64#define SMBIOS_TYPE_OEM_STRINGS 11
65#define SMBIOS_TYPE_SYSTEM_CONFIGURATION_OPTIONS 12
66#define SMBIOS_TYPE_BIOS_LANGUAGE_INFORMATION 13
67#define SMBIOS_TYPE_GROUP_ASSOCIATIONS 14
68#define SMBIOS_TYPE_SYSTEM_EVENT_LOG 15
69#define SMBIOS_TYPE_PHYSICAL_MEMORY_ARRAY 16
70#define SMBIOS_TYPE_MEMORY_DEVICE 17
71#define SMBIOS_TYPE_32BIT_MEMORY_ERROR_INFORMATION 18
72#define SMBIOS_TYPE_MEMORY_ARRAY_MAPPED_ADDRESS 19
73#define SMBIOS_TYPE_MEMORY_DEVICE_MAPPED_ADDRESS 20
74#define SMBIOS_TYPE_BUILT_IN_POINTING_DEVICE 21
75#define SMBIOS_TYPE_PORTABLE_BATTERY 22
76#define SMBIOS_TYPE_SYSTEM_RESET 23
77#define SMBIOS_TYPE_HARDWARE_SECURITY 24
78#define SMBIOS_TYPE_SYSTEM_POWER_CONTROLS 25
79#define SMBIOS_TYPE_VOLTAGE_PROBE 26
80#define SMBIOS_TYPE_COOLING_DEVICE 27
81#define SMBIOS_TYPE_TEMPERATURE_PROBE 28
82#define SMBIOS_TYPE_ELECTRICAL_CURRENT_PROBE 29
83#define SMBIOS_TYPE_OUT_OF_BAND_REMOTE_ACCESS 30
84#define SMBIOS_TYPE_BOOT_INTEGRITY_SERVICE 31
85#define SMBIOS_TYPE_SYSTEM_BOOT_INFORMATION 32
86#define SMBIOS_TYPE_64BIT_MEMORY_ERROR_INFORMATION 33
87#define SMBIOS_TYPE_MANAGEMENT_DEVICE 34
88#define SMBIOS_TYPE_MANAGEMENT_DEVICE_COMPONENT 35
89#define SMBIOS_TYPE_MANAGEMENT_DEVICE_THRESHOLD_DATA 36
90#define SMBIOS_TYPE_MEMORY_CHANNEL 37
91#define SMBIOS_TYPE_IPMI_DEVICE_INFORMATION 38
92#define SMBIOS_TYPE_SYSTEM_POWER_SUPPLY 39
93#define SMBIOS_TYPE_ADDITIONAL_INFORMATION 40
94#define SMBIOS_TYPE_ONBOARD_DEVICES_EXTENDED_INFORMATION 41
95#define SMBIOS_TYPE_MANAGEMENT_CONTROLLER_HOST_INTERFACE 42
96#define SMBIOS_TYPE_TPM_DEVICE 43
97#define SMBIOS_TYPE_PROCESSOR_ADDITIONAL_INFORMATION 44
98#define SMBIOS_TYPE_FIRMWARE_INVENTORY_INFORMATION 45
99#define SMBIOS_TYPE_STRING_PROPERTY_INFORMATION 46
100
106#define SMBIOS_TYPE_INACTIVE 0x007E
107
112#define SMBIOS_TYPE_END_OF_TABLE 0x007F
113
114#define SMBIOS_OEM_BEGIN 128
115#define SMBIOS_OEM_END 255
116
121typedef UINT8 SMBIOS_TYPE;
122
133typedef UINT16 SMBIOS_HANDLE;
134
138#pragma pack(1)
139typedef struct {
140 UINT8 AnchorString[4];
141 UINT8 EntryPointStructureChecksum;
142 UINT8 EntryPointLength;
143 UINT8 MajorVersion;
144 UINT8 MinorVersion;
145 UINT16 MaxStructureSize;
146 UINT8 EntryPointRevision;
147 UINT8 FormattedArea[5];
148 UINT8 IntermediateAnchorString[5];
149 UINT8 IntermediateChecksum;
150 UINT16 TableLength;
151 UINT32 TableAddress;
152 UINT16 NumberOfSmbiosStructures;
153 UINT8 SmbiosBcdRevision;
155
156typedef struct {
157 UINT8 AnchorString[5];
158 UINT8 EntryPointStructureChecksum;
159 UINT8 EntryPointLength;
160 UINT8 MajorVersion;
161 UINT8 MinorVersion;
162 UINT8 DocRev;
163 UINT8 EntryPointRevision;
164 UINT8 Reserved;
165 UINT32 TableMaximumSize;
166 UINT64 TableAddress;
168
172typedef struct {
173 SMBIOS_TYPE Type;
174 UINT8 Length;
175 SMBIOS_HANDLE Handle;
177
190
195typedef struct {
196 UINT32 Reserved : 2;
197 UINT32 Unknown : 1;
198 UINT32 BiosCharacteristicsNotSupported : 1;
199 UINT32 IsaIsSupported : 1;
200 UINT32 McaIsSupported : 1;
201 UINT32 EisaIsSupported : 1;
202 UINT32 PciIsSupported : 1;
203 UINT32 PcmciaIsSupported : 1;
204 UINT32 PlugAndPlayIsSupported : 1;
205 UINT32 ApmIsSupported : 1;
206 UINT32 BiosIsUpgradable : 1;
207 UINT32 BiosShadowingAllowed : 1;
208 UINT32 VlVesaIsSupported : 1;
209 UINT32 EscdSupportIsAvailable : 1;
210 UINT32 BootFromCdIsSupported : 1;
211 UINT32 SelectableBootIsSupported : 1;
212 UINT32 RomBiosIsSocketed : 1;
213 UINT32 BootFromPcmciaIsSupported : 1;
214 UINT32 EDDSpecificationIsSupported : 1;
215 UINT32 JapaneseNecFloppyIsSupported : 1;
216 UINT32 JapaneseToshibaFloppyIsSupported : 1;
217 UINT32 Floppy525_360IsSupported : 1;
218 UINT32 Floppy525_12IsSupported : 1;
219 UINT32 Floppy35_720IsSupported : 1;
220 UINT32 Floppy35_288IsSupported : 1;
221 UINT32 PrintScreenIsSupported : 1;
222 UINT32 Keyboard8042IsSupported : 1;
223 UINT32 SerialIsSupported : 1;
224 UINT32 PrinterIsSupported : 1;
225 UINT32 CgaMonoIsSupported : 1;
226 UINT32 NecPc98 : 1;
227 UINT32 ReservedForVendor : 32;
230
236typedef struct {
237 UINT8 AcpiIsSupported : 1;
238 UINT8 UsbLegacyIsSupported : 1;
239 UINT8 AgpIsSupported : 1;
240 UINT8 I2OBootIsSupported : 1;
241 UINT8 Ls120BootIsSupported : 1;
242 UINT8 AtapiZipDriveBootIsSupported : 1;
243 UINT8 Boot1394IsSupported : 1;
244 UINT8 SmartBatteryIsSupported : 1;
246
252typedef struct {
253 UINT8 BiosBootSpecIsSupported : 1;
254 UINT8 FunctionKeyNetworkBootIsSupported : 1;
255 UINT8 TargetContentDistributionEnabled : 1;
256 UINT8 UefiSpecificationSupported : 1;
257 UINT8 VirtualMachineSupported : 1;
258 UINT8 ManufacturingModeSupported : 1;
259 UINT8 ManufacturingModeEnabled : 1;
260 UINT8 ExtensionByte2Reserved : 1;
262
266typedef struct {
267 MBCE_BIOS_RESERVED BiosReserved;
268 MBCE_SYSTEM_RESERVED SystemReserved;
270
274typedef struct {
275 UINT16 Size : 14;
276 UINT16 Unit : 2;
278
282typedef struct {
284 SMBIOS_TABLE_STRING Vendor;
285 SMBIOS_TABLE_STRING BiosVersion;
286 UINT16 BiosSegment;
287 SMBIOS_TABLE_STRING BiosReleaseDate;
288 UINT8 BiosSize;
289 MISC_BIOS_CHARACTERISTICS BiosCharacteristics;
290 UINT8 BIOSCharacteristicsExtensionBytes[2];
291 UINT8 SystemBiosMajorRelease;
292 UINT8 SystemBiosMinorRelease;
293 UINT8 EmbeddedControllerFirmwareMajorRelease;
294 UINT8 EmbeddedControllerFirmwareMinorRelease;
295 //
296 // Add for smbios 3.1.0
297 //
298 EXTENDED_BIOS_ROM_SIZE ExtendedBiosSize;
300
304typedef enum {
305 SystemWakeupTypeReserved = 0x00,
306 SystemWakeupTypeOther = 0x01,
307 SystemWakeupTypeUnknown = 0x02,
308 SystemWakeupTypeApmTimer = 0x03,
309 SystemWakeupTypeModemRing = 0x04,
310 SystemWakeupTypeLanRemote = 0x05,
311 SystemWakeupTypePowerSwitch = 0x06,
312 SystemWakeupTypePciPme = 0x07,
313 SystemWakeupTypeAcPowerRestored = 0x08
315
324typedef struct {
326 SMBIOS_TABLE_STRING Manufacturer;
327 SMBIOS_TABLE_STRING ProductName;
328 SMBIOS_TABLE_STRING Version;
329 SMBIOS_TABLE_STRING SerialNumber;
330 GUID Uuid;
332 SMBIOS_TABLE_STRING SKUNumber;
333 SMBIOS_TABLE_STRING Family;
335
339typedef struct {
340 UINT8 Motherboard : 1;
341 UINT8 RequiresDaughterCard : 1;
342 UINT8 Removable : 1;
343 UINT8 Replaceable : 1;
344 UINT8 HotSwappable : 1;
345 UINT8 Reserved : 3;
347
351typedef enum {
352 BaseBoardTypeUnknown = 0x1,
353 BaseBoardTypeOther = 0x2,
354 BaseBoardTypeServerBlade = 0x3,
355 BaseBoardTypeConnectivitySwitch = 0x4,
356 BaseBoardTypeSystemManagementModule = 0x5,
357 BaseBoardTypeProcessorModule = 0x6,
358 BaseBoardTypeIOModule = 0x7,
359 BaseBoardTypeMemoryModule = 0x8,
360 BaseBoardTypeDaughterBoard = 0x9,
361 BaseBoardTypeMotherBoard = 0xA,
362 BaseBoardTypeProcessorMemoryModule = 0xB,
363 BaseBoardTypeProcessorIOModule = 0xC,
364 BaseBoardTypeInterconnectBoard = 0xD
366
373typedef struct {
375 SMBIOS_TABLE_STRING Manufacturer;
376 SMBIOS_TABLE_STRING ProductName;
377 SMBIOS_TABLE_STRING Version;
378 SMBIOS_TABLE_STRING SerialNumber;
379 SMBIOS_TABLE_STRING AssetTag;
380 BASE_BOARD_FEATURE_FLAGS FeatureFlag;
381 SMBIOS_TABLE_STRING LocationInChassis;
382 UINT16 ChassisHandle;
383 UINT8 BoardType;
384 UINT8 NumberOfContainedObjectHandles;
385 UINT16 ContainedObjectHandles[1];
387
391typedef enum {
392 MiscChassisTypeOther = 0x01,
393 MiscChassisTypeUnknown = 0x02,
394 MiscChassisTypeDeskTop = 0x03,
395 MiscChassisTypeLowProfileDesktop = 0x04,
396 MiscChassisTypePizzaBox = 0x05,
397 MiscChassisTypeMiniTower = 0x06,
398 MiscChassisTypeTower = 0x07,
399 MiscChassisTypePortable = 0x08,
400 MiscChassisTypeLapTop = 0x09,
401 MiscChassisTypeNotebook = 0x0A,
402 MiscChassisTypeHandHeld = 0x0B,
403 MiscChassisTypeDockingStation = 0x0C,
404 MiscChassisTypeAllInOne = 0x0D,
405 MiscChassisTypeSubNotebook = 0x0E,
406 MiscChassisTypeSpaceSaving = 0x0F,
407 MiscChassisTypeLunchBox = 0x10,
408 MiscChassisTypeMainServerChassis = 0x11,
409 MiscChassisTypeExpansionChassis = 0x12,
410 MiscChassisTypeSubChassis = 0x13,
411 MiscChassisTypeBusExpansionChassis = 0x14,
412 MiscChassisTypePeripheralChassis = 0x15,
413 MiscChassisTypeRaidChassis = 0x16,
414 MiscChassisTypeRackMountChassis = 0x17,
415 MiscChassisTypeSealedCasePc = 0x18,
416 MiscChassisMultiSystemChassis = 0x19,
417 MiscChassisCompactPCI = 0x1A,
418 MiscChassisAdvancedTCA = 0x1B,
419 MiscChassisBlade = 0x1C,
420 MiscChassisBladeEnclosure = 0x1D,
421 MiscChassisTablet = 0x1E,
422 MiscChassisConvertible = 0x1F,
423 MiscChassisDetachable = 0x20,
424 MiscChassisIoTGateway = 0x21,
425 MiscChassisEmbeddedPc = 0x22,
426 MiscChassisMiniPc = 0x23,
427 MiscChassisStickPc = 0x24
429
433typedef enum {
434 ChassisStateOther = 0x01,
435 ChassisStateUnknown = 0x02,
436 ChassisStateSafe = 0x03,
437 ChassisStateWarning = 0x04,
438 ChassisStateCritical = 0x05,
439 ChassisStateNonRecoverable = 0x06
441
445typedef enum {
446 ChassisSecurityStatusOther = 0x01,
447 ChassisSecurityStatusUnknown = 0x02,
448 ChassisSecurityStatusNone = 0x03,
449 ChassisSecurityStatusExternalInterfaceLockedOut = 0x04,
450 ChassisSecurityStatusExternalInterfaceLockedEnabled = 0x05
452
456typedef struct {
457 UINT8 ContainedElementType;
458 UINT8 ContainedElementMinimum;
459 UINT8 ContainedElementMaximum;
461
471typedef struct {
473 SMBIOS_TABLE_STRING Manufacturer;
474 UINT8 Type;
475 SMBIOS_TABLE_STRING Version;
476 SMBIOS_TABLE_STRING SerialNumber;
477 SMBIOS_TABLE_STRING AssetTag;
482 UINT8 OemDefined[4];
483 UINT8 Height;
484 UINT8 NumberofPowerCords;
485 UINT8 ContainedElementCount;
486 UINT8 ContainedElementRecordLength;
487 //
488 // Can have 0 to (ContainedElementCount * ContainedElementRecordLength) contained elements
489 //
490 CONTAINED_ELEMENT ContainedElements[1];
491 //
492 // Add for smbios 2.7
493 //
494 // Since ContainedElements has a variable number of entries, must not define SKUNumber in
495 // the structure. Need to reference it by starting at offset 0x15 and adding
496 // (ContainedElementCount * ContainedElementRecordLength) bytes.
497 //
498 // SMBIOS_TABLE_STRING SKUNumber;
500
504typedef enum {
505 ProcessorOther = 0x01,
506 ProcessorUnknown = 0x02,
507 CentralProcessor = 0x03,
508 MathProcessor = 0x04,
509 DspProcessor = 0x05,
510 VideoProcessor = 0x06
512
516typedef enum {
517 ProcessorFamilyOther = 0x01,
518 ProcessorFamilyUnknown = 0x02,
519 ProcessorFamily8086 = 0x03,
520 ProcessorFamily80286 = 0x04,
521 ProcessorFamilyIntel386 = 0x05,
522 ProcessorFamilyIntel486 = 0x06,
523 ProcessorFamily8087 = 0x07,
524 ProcessorFamily80287 = 0x08,
525 ProcessorFamily80387 = 0x09,
526 ProcessorFamily80487 = 0x0A,
527 ProcessorFamilyPentium = 0x0B,
528 ProcessorFamilyPentiumPro = 0x0C,
529 ProcessorFamilyPentiumII = 0x0D,
530 ProcessorFamilyPentiumMMX = 0x0E,
531 ProcessorFamilyCeleron = 0x0F,
532 ProcessorFamilyPentiumIIXeon = 0x10,
533 ProcessorFamilyPentiumIII = 0x11,
534 ProcessorFamilyM1 = 0x12,
535 ProcessorFamilyM2 = 0x13,
536 ProcessorFamilyIntelCeleronM = 0x14,
537 ProcessorFamilyIntelPentium4Ht = 0x15,
538 ProcessorFamilyAmdDuron = 0x18,
539 ProcessorFamilyK5 = 0x19,
540 ProcessorFamilyK6 = 0x1A,
541 ProcessorFamilyK6_2 = 0x1B,
542 ProcessorFamilyK6_3 = 0x1C,
543 ProcessorFamilyAmdAthlon = 0x1D,
544 ProcessorFamilyAmd29000 = 0x1E,
545 ProcessorFamilyK6_2Plus = 0x1F,
546 ProcessorFamilyPowerPC = 0x20,
547 ProcessorFamilyPowerPC601 = 0x21,
548 ProcessorFamilyPowerPC603 = 0x22,
549 ProcessorFamilyPowerPC603Plus = 0x23,
550 ProcessorFamilyPowerPC604 = 0x24,
551 ProcessorFamilyPowerPC620 = 0x25,
552 ProcessorFamilyPowerPCx704 = 0x26,
553 ProcessorFamilyPowerPC750 = 0x27,
554 ProcessorFamilyIntelCoreDuo = 0x28,
555 ProcessorFamilyIntelCoreDuoMobile = 0x29,
556 ProcessorFamilyIntelCoreSoloMobile = 0x2A,
557 ProcessorFamilyIntelAtom = 0x2B,
558 ProcessorFamilyIntelCoreM = 0x2C,
559 ProcessorFamilyIntelCorem3 = 0x2D,
560 ProcessorFamilyIntelCorem5 = 0x2E,
561 ProcessorFamilyIntelCorem7 = 0x2F,
562 ProcessorFamilyAlpha = 0x30,
563 ProcessorFamilyAlpha21064 = 0x31,
564 ProcessorFamilyAlpha21066 = 0x32,
565 ProcessorFamilyAlpha21164 = 0x33,
566 ProcessorFamilyAlpha21164PC = 0x34,
567 ProcessorFamilyAlpha21164a = 0x35,
568 ProcessorFamilyAlpha21264 = 0x36,
569 ProcessorFamilyAlpha21364 = 0x37,
570 ProcessorFamilyAmdTurionIIUltraDualCoreMobileM = 0x38,
571 ProcessorFamilyAmdTurionIIDualCoreMobileM = 0x39,
572 ProcessorFamilyAmdAthlonIIDualCoreM = 0x3A,
573 ProcessorFamilyAmdOpteron6100Series = 0x3B,
574 ProcessorFamilyAmdOpteron4100Series = 0x3C,
575 ProcessorFamilyAmdOpteron6200Series = 0x3D,
576 ProcessorFamilyAmdOpteron4200Series = 0x3E,
577 ProcessorFamilyAmdFxSeries = 0x3F,
578 ProcessorFamilyMips = 0x40,
579 ProcessorFamilyMIPSR4000 = 0x41,
580 ProcessorFamilyMIPSR4200 = 0x42,
581 ProcessorFamilyMIPSR4400 = 0x43,
582 ProcessorFamilyMIPSR4600 = 0x44,
583 ProcessorFamilyMIPSR10000 = 0x45,
584 ProcessorFamilyAmdCSeries = 0x46,
585 ProcessorFamilyAmdESeries = 0x47,
587 ProcessorFamilyAmdGSeries = 0x49,
588 ProcessorFamilyAmdZSeries = 0x4A,
589 ProcessorFamilyAmdRSeries = 0x4B,
590 ProcessorFamilyAmdOpteron4300 = 0x4C,
591 ProcessorFamilyAmdOpteron6300 = 0x4D,
592 ProcessorFamilyAmdOpteron3300 = 0x4E,
593 ProcessorFamilyAmdFireProSeries = 0x4F,
594 ProcessorFamilySparc = 0x50,
595 ProcessorFamilySuperSparc = 0x51,
596 ProcessorFamilymicroSparcII = 0x52,
597 ProcessorFamilymicroSparcIIep = 0x53,
598 ProcessorFamilyUltraSparc = 0x54,
599 ProcessorFamilyUltraSparcII = 0x55,
600 ProcessorFamilyUltraSparcIii = 0x56,
601 ProcessorFamilyUltraSparcIII = 0x57,
602 ProcessorFamilyUltraSparcIIIi = 0x58,
603 ProcessorFamily68040 = 0x60,
604 ProcessorFamily68xxx = 0x61,
605 ProcessorFamily68000 = 0x62,
606 ProcessorFamily68010 = 0x63,
607 ProcessorFamily68020 = 0x64,
608 ProcessorFamily68030 = 0x65,
609 ProcessorFamilyAmdAthlonX4QuadCore = 0x66,
610 ProcessorFamilyAmdOpteronX1000Series = 0x67,
611 ProcessorFamilyAmdOpteronX2000Series = 0x68,
612 ProcessorFamilyAmdOpteronASeries = 0x69,
613 ProcessorFamilyAmdOpteronX3000Series = 0x6A,
614 ProcessorFamilyAmdZen = 0x6B,
615 ProcessorFamilyHobbit = 0x70,
616 ProcessorFamilyCrusoeTM5000 = 0x78,
617 ProcessorFamilyCrusoeTM3000 = 0x79,
618 ProcessorFamilyEfficeonTM8000 = 0x7A,
619 ProcessorFamilyWeitek = 0x80,
620 ProcessorFamilyItanium = 0x82,
621 ProcessorFamilyAmdAthlon64 = 0x83,
622 ProcessorFamilyAmdOpteron = 0x84,
623 ProcessorFamilyAmdSempron = 0x85,
624 ProcessorFamilyAmdTurion64Mobile = 0x86,
625 ProcessorFamilyDualCoreAmdOpteron = 0x87,
626 ProcessorFamilyAmdAthlon64X2DualCore = 0x88,
627 ProcessorFamilyAmdTurion64X2Mobile = 0x89,
628 ProcessorFamilyQuadCoreAmdOpteron = 0x8A,
629 ProcessorFamilyThirdGenerationAmdOpteron = 0x8B,
630 ProcessorFamilyAmdPhenomFxQuadCore = 0x8C,
631 ProcessorFamilyAmdPhenomX4QuadCore = 0x8D,
632 ProcessorFamilyAmdPhenomX2DualCore = 0x8E,
633 ProcessorFamilyAmdAthlonX2DualCore = 0x8F,
634 ProcessorFamilyPARISC = 0x90,
635 ProcessorFamilyPaRisc8500 = 0x91,
636 ProcessorFamilyPaRisc8000 = 0x92,
637 ProcessorFamilyPaRisc7300LC = 0x93,
638 ProcessorFamilyPaRisc7200 = 0x94,
639 ProcessorFamilyPaRisc7100LC = 0x95,
640 ProcessorFamilyPaRisc7100 = 0x96,
641 ProcessorFamilyV30 = 0xA0,
642 ProcessorFamilyQuadCoreIntelXeon3200Series = 0xA1,
643 ProcessorFamilyDualCoreIntelXeon3000Series = 0xA2,
644 ProcessorFamilyQuadCoreIntelXeon5300Series = 0xA3,
645 ProcessorFamilyDualCoreIntelXeon5100Series = 0xA4,
646 ProcessorFamilyDualCoreIntelXeon5000Series = 0xA5,
647 ProcessorFamilyDualCoreIntelXeonLV = 0xA6,
648 ProcessorFamilyDualCoreIntelXeonULV = 0xA7,
649 ProcessorFamilyDualCoreIntelXeon7100Series = 0xA8,
650 ProcessorFamilyQuadCoreIntelXeon5400Series = 0xA9,
651 ProcessorFamilyQuadCoreIntelXeon = 0xAA,
652 ProcessorFamilyDualCoreIntelXeon5200Series = 0xAB,
653 ProcessorFamilyDualCoreIntelXeon7200Series = 0xAC,
654 ProcessorFamilyQuadCoreIntelXeon7300Series = 0xAD,
655 ProcessorFamilyQuadCoreIntelXeon7400Series = 0xAE,
656 ProcessorFamilyMultiCoreIntelXeon7400Series = 0xAF,
657 ProcessorFamilyPentiumIIIXeon = 0xB0,
658 ProcessorFamilyPentiumIIISpeedStep = 0xB1,
659 ProcessorFamilyPentium4 = 0xB2,
660 ProcessorFamilyIntelXeon = 0xB3,
661 ProcessorFamilyAS400 = 0xB4,
662 ProcessorFamilyIntelXeonMP = 0xB5,
663 ProcessorFamilyAMDAthlonXP = 0xB6,
664 ProcessorFamilyAMDAthlonMP = 0xB7,
665 ProcessorFamilyIntelItanium2 = 0xB8,
666 ProcessorFamilyIntelPentiumM = 0xB9,
667 ProcessorFamilyIntelCeleronD = 0xBA,
668 ProcessorFamilyIntelPentiumD = 0xBB,
669 ProcessorFamilyIntelPentiumEx = 0xBC,
671 ProcessorFamilyReserved = 0xBE,
672 ProcessorFamilyIntelCore2 = 0xBF,
673 ProcessorFamilyIntelCore2Solo = 0xC0,
674 ProcessorFamilyIntelCore2Extreme = 0xC1,
675 ProcessorFamilyIntelCore2Quad = 0xC2,
676 ProcessorFamilyIntelCore2ExtremeMobile = 0xC3,
677 ProcessorFamilyIntelCore2DuoMobile = 0xC4,
678 ProcessorFamilyIntelCore2SoloMobile = 0xC5,
679 ProcessorFamilyIntelCoreI7 = 0xC6,
680 ProcessorFamilyDualCoreIntelCeleron = 0xC7,
681 ProcessorFamilyIBM390 = 0xC8,
682 ProcessorFamilyG4 = 0xC9,
683 ProcessorFamilyG5 = 0xCA,
684 ProcessorFamilyG6 = 0xCB,
685 ProcessorFamilyzArchitecture = 0xCC,
686 ProcessorFamilyIntelCoreI5 = 0xCD,
687 ProcessorFamilyIntelCoreI3 = 0xCE,
688 ProcessorFamilyIntelCoreI9 = 0xCF,
689 ProcessorFamilyViaC7M = 0xD2,
690 ProcessorFamilyViaC7D = 0xD3,
691 ProcessorFamilyViaC7 = 0xD4,
692 ProcessorFamilyViaEden = 0xD5,
693 ProcessorFamilyMultiCoreIntelXeon = 0xD6,
694 ProcessorFamilyDualCoreIntelXeon3Series = 0xD7,
695 ProcessorFamilyQuadCoreIntelXeon3Series = 0xD8,
696 ProcessorFamilyViaNano = 0xD9,
697 ProcessorFamilyDualCoreIntelXeon5Series = 0xDA,
698 ProcessorFamilyQuadCoreIntelXeon5Series = 0xDB,
699 ProcessorFamilyDualCoreIntelXeon7Series = 0xDD,
700 ProcessorFamilyQuadCoreIntelXeon7Series = 0xDE,
701 ProcessorFamilyMultiCoreIntelXeon7Series = 0xDF,
702 ProcessorFamilyMultiCoreIntelXeon3400Series = 0xE0,
703 ProcessorFamilyAmdOpteron3000Series = 0xE4,
704 ProcessorFamilyAmdSempronII = 0xE5,
705 ProcessorFamilyEmbeddedAmdOpteronQuadCore = 0xE6,
706 ProcessorFamilyAmdPhenomTripleCore = 0xE7,
707 ProcessorFamilyAmdTurionUltraDualCoreMobile = 0xE8,
708 ProcessorFamilyAmdTurionDualCoreMobile = 0xE9,
709 ProcessorFamilyAmdAthlonDualCore = 0xEA,
710 ProcessorFamilyAmdSempronSI = 0xEB,
711 ProcessorFamilyAmdPhenomII = 0xEC,
712 ProcessorFamilyAmdAthlonII = 0xED,
713 ProcessorFamilySixCoreAmdOpteron = 0xEE,
714 ProcessorFamilyAmdSempronM = 0xEF,
715 ProcessorFamilyi860 = 0xFA,
716 ProcessorFamilyi960 = 0xFB,
717 ProcessorFamilyIndicatorFamily2 = 0xFE,
718 ProcessorFamilyReserved1 = 0xFF
720
724typedef enum {
725 ProcessorFamilyARMv7 = 0x0100,
726 ProcessorFamilyARMv8 = 0x0101,
727 ProcessorFamilySH3 = 0x0104,
728 ProcessorFamilySH4 = 0x0105,
729 ProcessorFamilyARM = 0x0118,
730 ProcessorFamilyStrongARM = 0x0119,
731 ProcessorFamily6x86 = 0x012C,
732 ProcessorFamilyMediaGX = 0x012D,
733 ProcessorFamilyMII = 0x012E,
734 ProcessorFamilyWinChip = 0x0140,
735 ProcessorFamilyDSP = 0x015E,
736 ProcessorFamilyVideoProcessor = 0x01F4,
737 ProcessorFamilyRiscvRV32 = 0x0200,
738 ProcessorFamilyRiscVRV64 = 0x0201,
739 ProcessorFamilyRiscVRV128 = 0x0202
741
745typedef struct {
746 UINT8 ProcessorVoltageCapability5V : 1;
747 UINT8 ProcessorVoltageCapability3_3V : 1;
748 UINT8 ProcessorVoltageCapability2_9V : 1;
751 UINT8 ProcessorVoltageIndicateLegacy : 1;
753
757typedef enum {
758 ProcessorUpgradeOther = 0x01,
759 ProcessorUpgradeUnknown = 0x02,
760 ProcessorUpgradeDaughterBoard = 0x03,
761 ProcessorUpgradeZIFSocket = 0x04,
763 ProcessorUpgradeNone = 0x06,
764 ProcessorUpgradeLIFSocket = 0x07,
765 ProcessorUpgradeSlot1 = 0x08,
766 ProcessorUpgradeSlot2 = 0x09,
767 ProcessorUpgrade370PinSocket = 0x0A,
768 ProcessorUpgradeSlotA = 0x0B,
769 ProcessorUpgradeSlotM = 0x0C,
770 ProcessorUpgradeSocket423 = 0x0D,
772 ProcessorUpgradeSocket478 = 0x0F,
773 ProcessorUpgradeSocket754 = 0x10,
774 ProcessorUpgradeSocket940 = 0x11,
775 ProcessorUpgradeSocket939 = 0x12,
776 ProcessorUpgradeSocketmPGA604 = 0x13,
777 ProcessorUpgradeSocketLGA771 = 0x14,
778 ProcessorUpgradeSocketLGA775 = 0x15,
779 ProcessorUpgradeSocketS1 = 0x16,
780 ProcessorUpgradeAM2 = 0x17,
781 ProcessorUpgradeF1207 = 0x18,
782 ProcessorSocketLGA1366 = 0x19,
783 ProcessorUpgradeSocketG34 = 0x1A,
784 ProcessorUpgradeSocketAM3 = 0x1B,
785 ProcessorUpgradeSocketC32 = 0x1C,
786 ProcessorUpgradeSocketLGA1156 = 0x1D,
787 ProcessorUpgradeSocketLGA1567 = 0x1E,
788 ProcessorUpgradeSocketPGA988A = 0x1F,
789 ProcessorUpgradeSocketBGA1288 = 0x20,
790 ProcessorUpgradeSocketrPGA988B = 0x21,
791 ProcessorUpgradeSocketBGA1023 = 0x22,
792 ProcessorUpgradeSocketBGA1224 = 0x23,
794 ProcessorUpgradeSocketLGA1356 = 0x25,
795 ProcessorUpgradeSocketLGA2011 = 0x26,
796 ProcessorUpgradeSocketFS1 = 0x27,
797 ProcessorUpgradeSocketFS2 = 0x28,
798 ProcessorUpgradeSocketFM1 = 0x29,
799 ProcessorUpgradeSocketFM2 = 0x2A,
800 ProcessorUpgradeSocketLGA2011_3 = 0x2B,
801 ProcessorUpgradeSocketLGA1356_3 = 0x2C,
802 ProcessorUpgradeSocketLGA1150 = 0x2D,
803 ProcessorUpgradeSocketBGA1168 = 0x2E,
804 ProcessorUpgradeSocketBGA1234 = 0x2F,
805 ProcessorUpgradeSocketBGA1364 = 0x30,
806 ProcessorUpgradeSocketAM4 = 0x31,
807 ProcessorUpgradeSocketLGA1151 = 0x32,
808 ProcessorUpgradeSocketBGA1356 = 0x33,
809 ProcessorUpgradeSocketBGA1440 = 0x34,
810 ProcessorUpgradeSocketBGA1515 = 0x35,
811 ProcessorUpgradeSocketLGA3647_1 = 0x36,
812 ProcessorUpgradeSocketSP3 = 0x37,
813 ProcessorUpgradeSocketSP3r2 = 0x38,
814 ProcessorUpgradeSocketLGA2066 = 0x39,
815 ProcessorUpgradeSocketBGA1392 = 0x3A,
816 ProcessorUpgradeSocketBGA1510 = 0x3B,
817 ProcessorUpgradeSocketBGA1528 = 0x3C,
818 ProcessorUpgradeSocketLGA4189 = 0x3D,
819 ProcessorUpgradeSocketLGA1200 = 0x3E,
820 ProcessorUpgradeSocketLGA4677 = 0x3F
822
826typedef struct {
827 UINT32 ProcessorSteppingId : 4;
828 UINT32 ProcessorModel : 4;
829 UINT32 ProcessorFamily : 4;
830 UINT32 ProcessorType : 2;
831 UINT32 ProcessorReserved1 : 2;
832 UINT32 ProcessorXModel : 4;
833 UINT32 ProcessorXFamily : 8;
834 UINT32 ProcessorReserved2 : 4;
836
837typedef struct {
838 UINT32 ProcessorFpu : 1;
839 UINT32 ProcessorVme : 1;
840 UINT32 ProcessorDe : 1;
841 UINT32 ProcessorPse : 1;
842 UINT32 ProcessorTsc : 1;
843 UINT32 ProcessorMsr : 1;
844 UINT32 ProcessorPae : 1;
845 UINT32 ProcessorMce : 1;
846 UINT32 ProcessorCx8 : 1;
847 UINT32 ProcessorApic : 1;
848 UINT32 ProcessorReserved1 : 1;
849 UINT32 ProcessorSep : 1;
850 UINT32 ProcessorMtrr : 1;
851 UINT32 ProcessorPge : 1;
852 UINT32 ProcessorMca : 1;
853 UINT32 ProcessorCmov : 1;
854 UINT32 ProcessorPat : 1;
855 UINT32 ProcessorPse36 : 1;
856 UINT32 ProcessorPsn : 1;
857 UINT32 ProcessorClfsh : 1;
858 UINT32 ProcessorReserved2 : 1;
859 UINT32 ProcessorDs : 1;
860 UINT32 ProcessorAcpi : 1;
861 UINT32 ProcessorMmx : 1;
862 UINT32 ProcessorFxsr : 1;
863 UINT32 ProcessorSse : 1;
864 UINT32 ProcessorSse2 : 1;
865 UINT32 ProcessorSs : 1;
866 UINT32 ProcessorReserved3 : 1;
867 UINT32 ProcessorTm : 1;
868 UINT32 ProcessorReserved4 : 2;
870
871typedef struct {
872 UINT16 ProcessorReserved1 : 1;
873 UINT16 ProcessorUnknown : 1;
874 UINT16 Processor64BitCapable : 1;
875 UINT16 ProcessorMultiCore : 1;
876 UINT16 ProcessorHardwareThread : 1;
877 UINT16 ProcessorExecuteProtection : 1;
878 UINT16 ProcessorEnhancedVirtualization : 1;
879 UINT16 ProcessorPowerPerformanceCtrl : 1;
880 UINT16 Processor128BitCapable : 1;
881 UINT16 ProcessorArm64SocId : 1;
882 UINT16 ProcessorReserved2 : 6;
884
888typedef union {
889 struct {
890 UINT8 CpuStatus : 3;
891 UINT8 Reserved1 : 3;
892 UINT8 SocketPopulated : 1;
893 UINT8 Reserved2 : 1;
894 } Bits;
895 UINT8 Data;
897
898typedef struct {
899 PROCESSOR_SIGNATURE Signature;
900 PROCESSOR_FEATURE_FLAGS FeatureFlags;
902
912typedef struct {
914 SMBIOS_TABLE_STRING Socket;
917 SMBIOS_TABLE_STRING ProcessorManufacturer;
918 PROCESSOR_ID_DATA ProcessorId;
919 SMBIOS_TABLE_STRING ProcessorVersion;
920 PROCESSOR_VOLTAGE Voltage;
921 UINT16 ExternalClock;
922 UINT16 MaxSpeed;
923 UINT16 CurrentSpeed;
924 UINT8 Status;
926 UINT16 L1CacheHandle;
927 UINT16 L2CacheHandle;
928 UINT16 L3CacheHandle;
929 SMBIOS_TABLE_STRING SerialNumber;
930 SMBIOS_TABLE_STRING AssetTag;
931 SMBIOS_TABLE_STRING PartNumber;
932 //
933 // Add for smbios 2.5
934 //
935 UINT8 CoreCount;
936 UINT8 EnabledCoreCount;
937 UINT8 ThreadCount;
938 UINT16 ProcessorCharacteristics;
939 //
940 // Add for smbios 2.6
941 //
942 UINT16 ProcessorFamily2;
943 //
944 // Add for smbios 3.0
945 //
946 UINT16 CoreCount2;
947 UINT16 EnabledCoreCount2;
948 UINT16 ThreadCount2;
950
954typedef enum {
955 ErrorDetectingMethodOther = 0x01,
956 ErrorDetectingMethodUnknown = 0x02,
957 ErrorDetectingMethodNone = 0x03,
958 ErrorDetectingMethodParity = 0x04,
959 ErrorDetectingMethod32Ecc = 0x05,
960 ErrorDetectingMethod64Ecc = 0x06,
961 ErrorDetectingMethod128Ecc = 0x07,
962 ErrorDetectingMethodCrc = 0x08
964
968typedef struct {
969 UINT8 Other : 1;
970 UINT8 Unknown : 1;
971 UINT8 None : 1;
972 UINT8 SingleBitErrorCorrect : 1;
973 UINT8 DoubleBitErrorCorrect : 1;
974 UINT8 ErrorScrubbing : 1;
975 UINT8 Reserved : 2;
977
981typedef enum {
982 MemoryInterleaveOther = 0x01,
983 MemoryInterleaveUnknown = 0x02,
984 MemoryInterleaveOneWay = 0x03,
985 MemoryInterleaveTwoWay = 0x04,
986 MemoryInterleaveFourWay = 0x05,
987 MemoryInterleaveEightWay = 0x06,
988 MemoryInterleaveSixteenWay = 0x07
990
994typedef struct {
995 UINT16 Other : 1;
996 UINT16 Unknown : 1;
997 UINT16 SeventyNs : 1;
998 UINT16 SixtyNs : 1;
999 UINT16 FiftyNs : 1;
1000 UINT16 Reserved : 11;
1002
1015typedef struct {
1016 SMBIOS_STRUCTURE Hdr;
1018 MEMORY_ERROR_CORRECT_CAPABILITY ErrCorrectCapability;
1021 UINT8 MaxMemoryModuleSize;
1022 MEMORY_SPEED_TYPE SupportSpeed;
1023 UINT16 SupportMemoryType;
1024 UINT8 MemoryModuleVoltage;
1025 UINT8 AssociatedMemorySlotNum;
1026 UINT16 MemoryModuleConfigHandles[1];
1028
1032typedef struct {
1033 UINT16 Other : 1;
1034 UINT16 Unknown : 1;
1035 UINT16 Standard : 1;
1036 UINT16 FastPageMode : 1;
1037 UINT16 Edo : 1;
1038 UINT16 Parity : 1;
1039 UINT16 Ecc : 1;
1040 UINT16 Simm : 1;
1041 UINT16 Dimm : 1;
1042 UINT16 BurstEdo : 1;
1043 UINT16 Sdram : 1;
1044 UINT16 Reserved : 5;
1046
1050typedef struct {
1052 UINT8 SingleOrDoubleBank : 1;
1054
1066typedef struct {
1067 SMBIOS_STRUCTURE Hdr;
1068 SMBIOS_TABLE_STRING SocketDesignation;
1069 UINT8 BankConnections;
1070 UINT8 CurrentSpeed;
1071 MEMORY_CURRENT_TYPE CurrentMemoryType;
1072 MEMORY_INSTALLED_ENABLED_SIZE InstalledSize;
1074 UINT8 ErrorStatus;
1076
1080typedef struct {
1081 UINT16 Other : 1;
1082 UINT16 Unknown : 1;
1083 UINT16 NonBurst : 1;
1084 UINT16 Burst : 1;
1085 UINT16 PipelineBurst : 1;
1086 UINT16 Synchronous : 1;
1087 UINT16 Asynchronous : 1;
1088 UINT16 Reserved : 9;
1090
1094typedef enum {
1095 CacheErrorOther = 0x01,
1096 CacheErrorUnknown = 0x02,
1097 CacheErrorNone = 0x03,
1098 CacheErrorParity = 0x04,
1100 CacheErrorMultiBit = 0x06
1102
1106typedef enum {
1107 CacheTypeOther = 0x01,
1108 CacheTypeUnknown = 0x02,
1109 CacheTypeInstruction = 0x03,
1110 CacheTypeData = 0x04,
1111 CacheTypeUnified = 0x05
1113
1117typedef enum {
1118 CacheAssociativityOther = 0x01,
1119 CacheAssociativityUnknown = 0x02,
1120 CacheAssociativityDirectMapped = 0x03,
1121 CacheAssociativity2Way = 0x04,
1122 CacheAssociativity4Way = 0x05,
1123 CacheAssociativityFully = 0x06,
1124 CacheAssociativity8Way = 0x07,
1125 CacheAssociativity16Way = 0x08,
1126 CacheAssociativity12Way = 0x09,
1127 CacheAssociativity24Way = 0x0A,
1128 CacheAssociativity32Way = 0x0B,
1129 CacheAssociativity48Way = 0x0C,
1130 CacheAssociativity64Way = 0x0D,
1131 CacheAssociativity20Way = 0x0E
1133
1142typedef struct {
1143 SMBIOS_STRUCTURE Hdr;
1144 SMBIOS_TABLE_STRING SocketDesignation;
1145 UINT16 CacheConfiguration;
1146 UINT16 MaximumCacheSize;
1147 UINT16 InstalledSize;
1148 CACHE_SRAM_TYPE_DATA SupportedSRAMType;
1149 CACHE_SRAM_TYPE_DATA CurrentSRAMType;
1150 UINT8 CacheSpeed;
1154 //
1155 // Add for smbios 3.1.0
1156 //
1157 UINT32 MaximumCacheSize2;
1158 UINT32 InstalledSize2;
1160
1164typedef enum {
1165 PortConnectorTypeNone = 0x00,
1166 PortConnectorTypeCentronics = 0x01,
1167 PortConnectorTypeMiniCentronics = 0x02,
1168 PortConnectorTypeProprietary = 0x03,
1169 PortConnectorTypeDB25Male = 0x04,
1170 PortConnectorTypeDB25Female = 0x05,
1171 PortConnectorTypeDB15Male = 0x06,
1172 PortConnectorTypeDB15Female = 0x07,
1173 PortConnectorTypeDB9Male = 0x08,
1174 PortConnectorTypeDB9Female = 0x09,
1175 PortConnectorTypeRJ11 = 0x0A,
1176 PortConnectorTypeRJ45 = 0x0B,
1177 PortConnectorType50PinMiniScsi = 0x0C,
1178 PortConnectorTypeMiniDin = 0x0D,
1179 PortConnectorTypeMicroDin = 0x0E,
1180 PortConnectorTypePS2 = 0x0F,
1181 PortConnectorTypeInfrared = 0x10,
1182 PortConnectorTypeHpHil = 0x11,
1183 PortConnectorTypeUsb = 0x12,
1184 PortConnectorTypeSsaScsi = 0x13,
1185 PortConnectorTypeCircularDin8Male = 0x14,
1186 PortConnectorTypeCircularDin8Female = 0x15,
1187 PortConnectorTypeOnboardIde = 0x16,
1188 PortConnectorTypeOnboardFloppy = 0x17,
1189 PortConnectorType9PinDualInline = 0x18,
1190 PortConnectorType25PinDualInline = 0x19,
1191 PortConnectorType50PinDualInline = 0x1A,
1192 PortConnectorType68PinDualInline = 0x1B,
1193 PortConnectorTypeOnboardSoundInput = 0x1C,
1194 PortConnectorTypeMiniCentronicsType14 = 0x1D,
1195 PortConnectorTypeMiniCentronicsType26 = 0x1E,
1196 PortConnectorTypeHeadPhoneMiniJack = 0x1F,
1197 PortConnectorTypeBNC = 0x20,
1198 PortConnectorType1394 = 0x21,
1199 PortConnectorTypeSasSata = 0x22,
1200 PortConnectorTypeUsbTypeC = 0x23,
1201 PortConnectorTypePC98 = 0xA0,
1202 PortConnectorTypePC98Hireso = 0xA1,
1203 PortConnectorTypePCH98 = 0xA2,
1204 PortConnectorTypePC98Note = 0xA3,
1205 PortConnectorTypePC98Full = 0xA4,
1206 PortConnectorTypeOther = 0xFF
1208
1212typedef enum {
1213 PortTypeNone = 0x00,
1214 PortTypeParallelXtAtCompatible = 0x01,
1215 PortTypeParallelPortPs2 = 0x02,
1216 PortTypeParallelPortEcp = 0x03,
1217 PortTypeParallelPortEpp = 0x04,
1218 PortTypeParallelPortEcpEpp = 0x05,
1219 PortTypeSerialXtAtCompatible = 0x06,
1220 PortTypeSerial16450Compatible = 0x07,
1221 PortTypeSerial16550Compatible = 0x08,
1222 PortTypeSerial16550ACompatible = 0x09,
1223 PortTypeScsi = 0x0A,
1224 PortTypeMidi = 0x0B,
1225 PortTypeJoyStick = 0x0C,
1226 PortTypeKeyboard = 0x0D,
1227 PortTypeMouse = 0x0E,
1228 PortTypeSsaScsi = 0x0F,
1229 PortTypeUsb = 0x10,
1230 PortTypeFireWire = 0x11,
1231 PortTypePcmciaTypeI = 0x12,
1232 PortTypePcmciaTypeII = 0x13,
1233 PortTypePcmciaTypeIII = 0x14,
1234 PortTypeCardBus = 0x15,
1235 PortTypeAccessBusPort = 0x16,
1236 PortTypeScsiII = 0x17,
1237 PortTypeScsiWide = 0x18,
1238 PortTypePC98 = 0x19,
1239 PortTypePC98Hireso = 0x1A,
1240 PortTypePCH98 = 0x1B,
1241 PortTypeVideoPort = 0x1C,
1242 PortTypeAudioPort = 0x1D,
1243 PortTypeModemPort = 0x1E,
1244 PortTypeNetworkPort = 0x1F,
1245 PortTypeSata = 0x20,
1246 PortTypeSas = 0x21,
1248 PortTypeThunderbolt = 0x23,
1249 PortType8251Compatible = 0xA0,
1250 PortType8251FifoCompatible = 0xA1,
1251 PortTypeOther = 0xFF
1253
1261typedef struct {
1262 SMBIOS_STRUCTURE Hdr;
1263 SMBIOS_TABLE_STRING InternalReferenceDesignator;
1265 SMBIOS_TABLE_STRING ExternalReferenceDesignator;
1267 UINT8 PortType;
1269
1273typedef enum {
1274 SlotTypeOther = 0x01,
1275 SlotTypeUnknown = 0x02,
1276 SlotTypeIsa = 0x03,
1277 SlotTypeMca = 0x04,
1278 SlotTypeEisa = 0x05,
1279 SlotTypePci = 0x06,
1280 SlotTypePcmcia = 0x07,
1281 SlotTypeVlVesa = 0x08,
1282 SlotTypeProprietary = 0x09,
1283 SlotTypeProcessorCardSlot = 0x0A,
1284 SlotTypeProprietaryMemoryCardSlot = 0x0B,
1285 SlotTypeIORiserCardSlot = 0x0C,
1286 SlotTypeNuBus = 0x0D,
1287 SlotTypePci66MhzCapable = 0x0E,
1288 SlotTypeAgp = 0x0F,
1289 SlotTypeApg2X = 0x10,
1290 SlotTypeAgp4X = 0x11,
1291 SlotTypePciX = 0x12,
1292 SlotTypeAgp8X = 0x13,
1293 SlotTypeM2Socket1_DP = 0x14,
1294 SlotTypeM2Socket1_SD = 0x15,
1295 SlotTypeM2Socket2 = 0x16,
1296 SlotTypeM2Socket3 = 0x17,
1297 SlotTypeMxmTypeI = 0x18,
1298 SlotTypeMxmTypeII = 0x19,
1299 SlotTypeMxmTypeIIIStandard = 0x1A,
1300 SlotTypeMxmTypeIIIHe = 0x1B,
1301 SlotTypeMxmTypeIV = 0x1C,
1302 SlotTypeMxm30TypeA = 0x1D,
1303 SlotTypeMxm30TypeB = 0x1E,
1304 SlotTypePciExpressGen2Sff_8639 = 0x1F,
1305 SlotTypePciExpressGen3Sff_8639 = 0x20,
1313 SlotTypeOCPNICPriorto30 = 0x28,
1314 SlotTypeCXLFlexbus10 = 0x30,
1315 SlotTypePC98C20 = 0xA0,
1316 SlotTypePC98C24 = 0xA1,
1317 SlotTypePC98E = 0xA2,
1318 SlotTypePC98LocalBus = 0xA3,
1319 SlotTypePC98Card = 0xA4,
1320 SlotTypePciExpress = 0xA5,
1321 SlotTypePciExpressX1 = 0xA6,
1322 SlotTypePciExpressX2 = 0xA7,
1323 SlotTypePciExpressX4 = 0xA8,
1324 SlotTypePciExpressX8 = 0xA9,
1325 SlotTypePciExpressX16 = 0xAA,
1326 SlotTypePciExpressGen2 = 0xAB,
1327 SlotTypePciExpressGen2X1 = 0xAC,
1328 SlotTypePciExpressGen2X2 = 0xAD,
1329 SlotTypePciExpressGen2X4 = 0xAE,
1330 SlotTypePciExpressGen2X8 = 0xAF,
1331 SlotTypePciExpressGen2X16 = 0xB0,
1332 SlotTypePciExpressGen3 = 0xB1,
1333 SlotTypePciExpressGen3X1 = 0xB2,
1334 SlotTypePciExpressGen3X2 = 0xB3,
1335 SlotTypePciExpressGen3X4 = 0xB4,
1336 SlotTypePciExpressGen3X8 = 0xB5,
1337 SlotTypePciExpressGen3X16 = 0xB6,
1338 SlotTypePciExpressGen4 = 0xB8,
1339 SlotTypePciExpressGen4X1 = 0xB9,
1340 SlotTypePciExpressGen4X2 = 0xBA,
1341 SlotTypePciExpressGen4X4 = 0xBB,
1342 SlotTypePciExpressGen4X8 = 0xBC,
1343 SlotTypePciExpressGen4X16 = 0xBD,
1344 SlotTypePCIExpressGen5 = 0xBE,
1345 SlotTypePCIExpressGen5X1 = 0xBF,
1346 SlotTypePCIExpressGen5X2 = 0xC0,
1347 SlotTypePCIExpressGen5X4 = 0xC1,
1348 SlotTypePCIExpressGen5X8 = 0xC2,
1349 SlotTypePCIExpressGen5X16 = 0xC3,
1350 SlotTypePCIExpressGen6andBeyond = 0xC4,
1351 SlotTypeEnterpriseandDatacenter1UE1FormFactorSlot = 0xC5,
1352 SlotTypeEnterpriseandDatacenter3E3FormFactorSlot = 0xC6
1354
1358typedef enum {
1359 SlotDataBusWidthOther = 0x01,
1360 SlotDataBusWidthUnknown = 0x02,
1361 SlotDataBusWidth8Bit = 0x03,
1362 SlotDataBusWidth16Bit = 0x04,
1363 SlotDataBusWidth32Bit = 0x05,
1364 SlotDataBusWidth64Bit = 0x06,
1365 SlotDataBusWidth128Bit = 0x07,
1372 SlotDataBusWidth32X = 0x0E
1374
1378typedef enum {
1379 SlotPhysicalWidthOther = 0x01,
1380 SlotPhysicalWidthUnknown = 0x02,
1381 SlotPhysicalWidth8Bit = 0x03,
1382 SlotPhysicalWidth16Bit = 0x04,
1383 SlotPhysicalWidth32Bit = 0x05,
1384 SlotPhysicalWidth64Bit = 0x06,
1385 SlotPhysicalWidth128Bit = 0x07,
1392 SlotPhysicalWidth32X = 0x0E
1394
1398typedef enum {
1399 Others = 0x00,
1400 Gen1 = 0x01,
1401 Gen2 = 0x01,
1402 Gen3 = 0x03,
1403 Gen4 = 0x04,
1404 Gen5 = 0x05,
1405 Gen6 = 0x06
1407
1411typedef enum {
1412 SlotUsageOther = 0x01,
1413 SlotUsageUnknown = 0x02,
1414 SlotUsageAvailable = 0x03,
1415 SlotUsageInUse = 0x04,
1416 SlotUsageUnavailable = 0x05
1418
1422typedef enum {
1423 SlotLengthOther = 0x01,
1424 SlotLengthUnknown = 0x02,
1425 SlotLengthShort = 0x03,
1426 SlotLengthLong = 0x04
1428
1432typedef struct {
1433 UINT8 CharacteristicsUnknown : 1;
1434 UINT8 Provides50Volts : 1;
1435 UINT8 Provides33Volts : 1;
1436 UINT8 SharedSlot : 1;
1437 UINT8 PcCard16Supported : 1;
1438 UINT8 CardBusSupported : 1;
1439 UINT8 ZoomVideoSupported : 1;
1440 UINT8 ModemRingResumeSupported : 1;
1445typedef struct {
1446 UINT8 PmeSignalSupported : 1;
1447 UINT8 HotPlugDevicesSupported : 1;
1448 UINT8 SmbusSignalSupported : 1;
1449 UINT8 BifurcationSupported : 1;
1450 UINT8 AsyncSurpriseRemoval : 1;
1451 UINT8 FlexbusSlotCxl10Capable : 1;
1452 UINT8 FlexbusSlotCxl20Capable : 1;
1453 UINT8 Reserved : 1;
1455
1459typedef enum {
1460 SlotHeightNone = 0x00,
1461 SlotHeightOther = 0x01,
1462 SlotHeightUnknown = 0x02,
1463 SlotHeightFullHeight = 0x03,
1464 SlotHeightLowProfile = 0x04
1466
1470typedef struct {
1471 UINT16 SegmentGroupNum;
1472 UINT8 BusNum;
1473 UINT8 DevFuncNum;
1474 UINT8 DataBusWidth;
1476
1484typedef struct {
1485 SMBIOS_STRUCTURE Hdr;
1486 SMBIOS_TABLE_STRING SlotDesignation;
1487 UINT8 SlotType;
1491 UINT16 SlotID;
1492 MISC_SLOT_CHARACTERISTICS1 SlotCharacteristics1;
1493 MISC_SLOT_CHARACTERISTICS2 SlotCharacteristics2;
1494 //
1495 // Add for smbios 2.6
1496 //
1497 UINT16 SegmentGroupNum;
1498 UINT8 BusNum;
1499 UINT8 DevFuncNum;
1500 //
1501 // Add for smbios 3.2
1502 //
1503 UINT8 DataBusWidth;
1504 UINT8 PeerGroupingCount;
1505 MISC_SLOT_PEER_GROUP PeerGroups[1];
1506 //
1507 // Add for smbios 3.4
1508 //
1509 UINT8 SlotInformation;
1510 UINT8 SlotPhysicalWidth;
1511 UINT16 SlotPitch;
1512 //
1513 // Add for smbios 3.5
1514 //
1517
1521typedef enum {
1522 OnBoardDeviceTypeOther = 0x01,
1523 OnBoardDeviceTypeUnknown = 0x02,
1524 OnBoardDeviceTypeVideo = 0x03,
1525 OnBoardDeviceTypeScsiController = 0x04,
1526 OnBoardDeviceTypeEthernet = 0x05,
1527 OnBoardDeviceTypeTokenRing = 0x06,
1528 OnBoardDeviceTypeSound = 0x07,
1529 OnBoardDeviceTypePATAController = 0x08,
1530 OnBoardDeviceTypeSATAController = 0x09,
1531 OnBoardDeviceTypeSASController = 0x0A
1533
1537typedef struct {
1540 SMBIOS_TABLE_STRING DescriptionString;
1542
1553typedef struct {
1554 SMBIOS_STRUCTURE Hdr;
1555 DEVICE_STRUCT Device[1];
1557
1563typedef struct {
1564 SMBIOS_STRUCTURE Hdr;
1565 UINT8 StringCount;
1567
1573typedef struct {
1574 SMBIOS_STRUCTURE Hdr;
1575 UINT8 StringCount;
1577
1583typedef struct {
1584 SMBIOS_STRUCTURE Hdr;
1585 UINT8 InstallableLanguages;
1586 UINT8 Flags;
1587 UINT8 Reserved[15];
1588 SMBIOS_TABLE_STRING CurrentLanguages;
1590
1594typedef struct {
1595 UINT8 ItemType;
1596 UINT16 ItemHandle;
1597} GROUP_STRUCT;
1598
1606typedef struct {
1607 SMBIOS_STRUCTURE Hdr;
1608 SMBIOS_TABLE_STRING GroupName;
1609 GROUP_STRUCT Group[1];
1611
1615typedef enum {
1616 EventLogTypeReserved = 0x00,
1617 EventLogTypeSingleBitECC = 0x01,
1618 EventLogTypeMultiBitECC = 0x02,
1619 EventLogTypeParityMemErr = 0x03,
1620 EventLogTypeBusTimeOut = 0x04,
1621 EventLogTypeIOChannelCheck = 0x05,
1622 EventLogTypeSoftwareNMI = 0x06,
1623 EventLogTypePOSTMemResize = 0x07,
1624 EventLogTypePOSTErr = 0x08,
1625 EventLogTypePCIParityErr = 0x09,
1626 EventLogTypePCISystemErr = 0x0A,
1627 EventLogTypeCPUFailure = 0x0B,
1628 EventLogTypeEISATimeOut = 0x0C,
1629 EventLogTypeMemLogDisabled = 0x0D,
1630 EventLogTypeLoggingDisabled = 0x0E,
1631 EventLogTypeSysLimitExce = 0x10,
1632 EventLogTypeAsyncHWTimer = 0x11,
1633 EventLogTypeSysConfigInfo = 0x12,
1634 EventLogTypeHDInfo = 0x13,
1635 EventLogTypeSysReconfig = 0x14,
1636 EventLogTypeUncorrectCPUErr = 0x15,
1637 EventLogTypeAreaResetAndClr = 0x16,
1638 EventLogTypeSystemBoot = 0x17,
1641 EventLogTypeEndOfLog = 0xFF
1643
1647typedef enum {
1648 EventLogVariableNone = 0x00,
1649 EventLogVariableHandle = 0x01,
1650 EventLogVariableMutilEvent = 0x02,
1651 EventLogVariableMutilEventHandle = 0x03,
1652 EventLogVariablePOSTResultBitmap = 0x04,
1653 EventLogVariableSysManagementType = 0x05,
1654 EventLogVariableMutliEventSysManagmentType = 0x06,
1655 EventLogVariableUnused = 0x07,
1656 EventLogVariableOEMAssigned = 0x80
1658
1662typedef struct {
1663 UINT8 LogType;
1664 UINT8 DataFormatType;
1666
1675typedef struct {
1676 SMBIOS_STRUCTURE Hdr;
1677 UINT16 LogAreaLength;
1678 UINT16 LogHeaderStartOffset;
1679 UINT16 LogDataStartOffset;
1680 UINT8 AccessMethod;
1681 UINT8 LogStatus;
1682 UINT32 LogChangeToken;
1683 UINT32 AccessMethodAddress;
1684 UINT8 LogHeaderFormat;
1685 UINT8 NumberOfSupportedLogTypeDescriptors;
1686 UINT8 LengthOfLogTypeDescriptor;
1687 EVENT_LOG_TYPE EventLogTypeDescriptors[1];
1689
1693typedef enum {
1694 MemoryArrayLocationOther = 0x01,
1695 MemoryArrayLocationUnknown = 0x02,
1696 MemoryArrayLocationSystemBoard = 0x03,
1697 MemoryArrayLocationIsaAddonCard = 0x04,
1698 MemoryArrayLocationEisaAddonCard = 0x05,
1699 MemoryArrayLocationPciAddonCard = 0x06,
1700 MemoryArrayLocationMcaAddonCard = 0x07,
1701 MemoryArrayLocationPcmciaAddonCard = 0x08,
1702 MemoryArrayLocationProprietaryAddonCard = 0x09,
1703 MemoryArrayLocationNuBus = 0x0A,
1704 MemoryArrayLocationPc98C20AddonCard = 0xA0,
1705 MemoryArrayLocationPc98C24AddonCard = 0xA1,
1706 MemoryArrayLocationPc98EAddonCard = 0xA2,
1707 MemoryArrayLocationPc98LocalBusAddonCard = 0xA3,
1708 MemoryArrayLocationCXLAddonCard = 0xA4
1710
1714typedef enum {
1715 MemoryArrayUseOther = 0x01,
1716 MemoryArrayUseUnknown = 0x02,
1717 MemoryArrayUseSystemMemory = 0x03,
1718 MemoryArrayUseVideoMemory = 0x04,
1719 MemoryArrayUseFlashMemory = 0x05,
1720 MemoryArrayUseNonVolatileRam = 0x06,
1721 MemoryArrayUseCacheMemory = 0x07
1723
1727typedef enum {
1728 MemoryErrorCorrectionOther = 0x01,
1729 MemoryErrorCorrectionUnknown = 0x02,
1730 MemoryErrorCorrectionNone = 0x03,
1731 MemoryErrorCorrectionParity = 0x04,
1732 MemoryErrorCorrectionSingleBitEcc = 0x05,
1733 MemoryErrorCorrectionMultiBitEcc = 0x06,
1734 MemoryErrorCorrectionCrc = 0x07
1736
1743typedef struct {
1744 SMBIOS_STRUCTURE Hdr;
1745 UINT8 Location;
1746 UINT8 Use;
1748 UINT32 MaximumCapacity;
1749 UINT16 MemoryErrorInformationHandle;
1750 UINT16 NumberOfMemoryDevices;
1751 //
1752 // Add for smbios 2.7
1753 //
1754 UINT64 ExtendedMaximumCapacity;
1756
1760typedef enum {
1761 MemoryFormFactorOther = 0x01,
1762 MemoryFormFactorUnknown = 0x02,
1763 MemoryFormFactorSimm = 0x03,
1764 MemoryFormFactorSip = 0x04,
1765 MemoryFormFactorChip = 0x05,
1766 MemoryFormFactorDip = 0x06,
1767 MemoryFormFactorZip = 0x07,
1768 MemoryFormFactorProprietaryCard = 0x08,
1769 MemoryFormFactorDimm = 0x09,
1770 MemoryFormFactorTsop = 0x0A,
1771 MemoryFormFactorRowOfChips = 0x0B,
1772 MemoryFormFactorRimm = 0x0C,
1773 MemoryFormFactorSodimm = 0x0D,
1774 MemoryFormFactorSrimm = 0x0E,
1775 MemoryFormFactorFbDimm = 0x0F,
1776 MemoryFormFactorDie = 0x10
1778
1782typedef enum {
1783 MemoryTypeOther = 0x01,
1784 MemoryTypeUnknown = 0x02,
1785 MemoryTypeDram = 0x03,
1786 MemoryTypeEdram = 0x04,
1787 MemoryTypeVram = 0x05,
1788 MemoryTypeSram = 0x06,
1789 MemoryTypeRam = 0x07,
1790 MemoryTypeRom = 0x08,
1791 MemoryTypeFlash = 0x09,
1792 MemoryTypeEeprom = 0x0A,
1793 MemoryTypeFeprom = 0x0B,
1794 MemoryTypeEprom = 0x0C,
1795 MemoryTypeCdram = 0x0D,
1796 MemoryType3Dram = 0x0E,
1797 MemoryTypeSdram = 0x0F,
1798 MemoryTypeSgram = 0x10,
1799 MemoryTypeRdram = 0x11,
1800 MemoryTypeDdr = 0x12,
1801 MemoryTypeDdr2 = 0x13,
1802 MemoryTypeDdr2FbDimm = 0x14,
1803 MemoryTypeDdr3 = 0x18,
1804 MemoryTypeFbd2 = 0x19,
1805 MemoryTypeDdr4 = 0x1A,
1806 MemoryTypeLpddr = 0x1B,
1807 MemoryTypeLpddr2 = 0x1C,
1808 MemoryTypeLpddr3 = 0x1D,
1809 MemoryTypeLpddr4 = 0x1E,
1810 MemoryTypeLogicalNonVolatileDevice = 0x1F,
1811 MemoryTypeHBM = 0x20,
1812 MemoryTypeHBM2 = 0x21,
1813 MemoryTypeDdr5 = 0x22,
1814 MemoryTypeLpddr5 = 0x23
1816
1820typedef struct {
1821 UINT16 Reserved : 1;
1822 UINT16 Other : 1;
1823 UINT16 Unknown : 1;
1824 UINT16 FastPaged : 1;
1825 UINT16 StaticColumn : 1;
1826 UINT16 PseudoStatic : 1;
1827 UINT16 Rambus : 1;
1828 UINT16 Synchronous : 1;
1829 UINT16 Cmos : 1;
1830 UINT16 Edo : 1;
1831 UINT16 WindowDram : 1;
1832 UINT16 CacheDram : 1;
1833 UINT16 Nonvolatile : 1;
1834 UINT16 Registered : 1;
1835 UINT16 Unbuffered : 1;
1836 UINT16 LrDimm : 1;
1838
1842typedef enum {
1843 MemoryTechnologyOther = 0x01,
1844 MemoryTechnologyUnknown = 0x02,
1845 MemoryTechnologyDram = 0x03,
1846 MemoryTechnologyNvdimmN = 0x04,
1847 MemoryTechnologyNvdimmF = 0x05,
1848 MemoryTechnologyNvdimmP = 0x06,
1849 //
1850 // This definition is updated to represent Intel
1851 // Optane DC Persistent Memory in SMBIOS spec 3.4.0
1852 //
1853 MemoryTechnologyIntelOptanePersistentMemory = 0x07
1855
1859typedef union {
1863 struct {
1864 UINT16 Reserved : 1;
1865 UINT16 Other : 1;
1866 UINT16 Unknown : 1;
1867 UINT16 VolatileMemory : 1;
1868 UINT16 ByteAccessiblePersistentMemory : 1;
1869 UINT16 BlockAccessiblePersistentMemory : 1;
1870 UINT16 Reserved2 : 10;
1871 } Bits;
1875 UINT16 Uint16;
1877
1887typedef struct {
1888 SMBIOS_STRUCTURE Hdr;
1889 UINT16 MemoryArrayHandle;
1890 UINT16 MemoryErrorInformationHandle;
1891 UINT16 TotalWidth;
1892 UINT16 DataWidth;
1893 UINT16 Size;
1895 UINT8 DeviceSet;
1896 SMBIOS_TABLE_STRING DeviceLocator;
1897 SMBIOS_TABLE_STRING BankLocator;
1899 MEMORY_DEVICE_TYPE_DETAIL TypeDetail;
1900 UINT16 Speed;
1901 SMBIOS_TABLE_STRING Manufacturer;
1902 SMBIOS_TABLE_STRING SerialNumber;
1903 SMBIOS_TABLE_STRING AssetTag;
1904 SMBIOS_TABLE_STRING PartNumber;
1905 //
1906 // Add for smbios 2.6
1907 //
1908 UINT8 Attributes;
1909 //
1910 // Add for smbios 2.7
1911 //
1912 UINT32 ExtendedSize;
1913 //
1914 // Keep using name "ConfiguredMemoryClockSpeed" for compatibility
1915 // although this field is renamed from "Configured Memory Clock Speed"
1916 // to "Configured Memory Speed" in smbios 3.2.0.
1917 //
1918 UINT16 ConfiguredMemoryClockSpeed;
1919 //
1920 // Add for smbios 2.8.0
1921 //
1922 UINT16 MinimumVoltage;
1923 UINT16 MaximumVoltage;
1924 UINT16 ConfiguredVoltage;
1925 //
1926 // Add for smbios 3.2.0
1927 //
1929 MEMORY_DEVICE_OPERATING_MODE_CAPABILITY MemoryOperatingModeCapability;
1930 SMBIOS_TABLE_STRING FirmwareVersion;
1931 UINT16 ModuleManufacturerID;
1932 UINT16 ModuleProductID;
1933 UINT16 MemorySubsystemControllerManufacturerID;
1934 UINT16 MemorySubsystemControllerProductID;
1935 UINT64 NonVolatileSize;
1936 UINT64 VolatileSize;
1937 UINT64 CacheSize;
1938 UINT64 LogicalSize;
1939 //
1940 // Add for smbios 3.3.0
1941 //
1942 UINT32 ExtendedSpeed;
1943 UINT32 ExtendedConfiguredMemorySpeed;
1945
1949typedef enum {
1950 MemoryErrorOther = 0x01,
1951 MemoryErrorUnknown = 0x02,
1952 MemoryErrorOk = 0x03,
1953 MemoryErrorBadRead = 0x04,
1954 MemoryErrorParity = 0x05,
1955 MemoryErrorSigleBit = 0x06,
1956 MemoryErrorDoubleBit = 0x07,
1957 MemoryErrorMultiBit = 0x08,
1958 MemoryErrorNibble = 0x09,
1959 MemoryErrorChecksum = 0x0A,
1960 MemoryErrorCrc = 0x0B,
1961 MemoryErrorCorrectSingleBit = 0x0C,
1962 MemoryErrorCorrected = 0x0D,
1963 MemoryErrorUnCorrectable = 0x0E
1965
1969typedef enum {
1970 MemoryGranularityOther = 0x01,
1971 MemoryGranularityOtherUnknown = 0x02,
1972 MemoryGranularityDeviceLevel = 0x03,
1973 MemoryGranularityMemPartitionLevel = 0x04
1975
1979typedef enum {
1980 MemoryErrorOperationOther = 0x01,
1981 MemoryErrorOperationUnknown = 0x02,
1982 MemoryErrorOperationRead = 0x03,
1983 MemoryErrorOperationWrite = 0x04,
1984 MemoryErrorOperationPartialWrite = 0x05
1986
1993typedef struct {
1994 SMBIOS_STRUCTURE Hdr;
1998 UINT32 VendorSyndrome;
1999 UINT32 MemoryArrayErrorAddress;
2000 UINT32 DeviceErrorAddress;
2001 UINT32 ErrorResolution;
2003
2010typedef struct {
2011 SMBIOS_STRUCTURE Hdr;
2012 UINT32 StartingAddress;
2013 UINT32 EndingAddress;
2014 UINT16 MemoryArrayHandle;
2015 UINT8 PartitionWidth;
2016 //
2017 // Add for smbios 2.7
2018 //
2019 UINT64 ExtendedStartingAddress;
2020 UINT64 ExtendedEndingAddress;
2022
2029typedef struct {
2030 SMBIOS_STRUCTURE Hdr;
2031 UINT32 StartingAddress;
2032 UINT32 EndingAddress;
2033 UINT16 MemoryDeviceHandle;
2034 UINT16 MemoryArrayMappedAddressHandle;
2035 UINT8 PartitionRowPosition;
2036 UINT8 InterleavePosition;
2037 UINT8 InterleavedDataDepth;
2038 //
2039 // Add for smbios 2.7
2040 //
2041 UINT64 ExtendedStartingAddress;
2042 UINT64 ExtendedEndingAddress;
2044
2048typedef enum {
2049 PointingDeviceTypeOther = 0x01,
2050 PointingDeviceTypeUnknown = 0x02,
2051 PointingDeviceTypeMouse = 0x03,
2052 PointingDeviceTypeTrackBall = 0x04,
2053 PointingDeviceTypeTrackPoint = 0x05,
2054 PointingDeviceTypeGlidePoint = 0x06,
2055 PointingDeviceTouchPad = 0x07,
2056 PointingDeviceTouchScreen = 0x08,
2057 PointingDeviceOpticalSensor = 0x09
2059
2063typedef enum {
2064 PointingDeviceInterfaceOther = 0x01,
2065 PointingDeviceInterfaceUnknown = 0x02,
2066 PointingDeviceInterfaceSerial = 0x03,
2067 PointingDeviceInterfacePs2 = 0x04,
2068 PointingDeviceInterfaceInfrared = 0x05,
2069 PointingDeviceInterfaceHpHil = 0x06,
2070 PointingDeviceInterfaceBusMouse = 0x07,
2071 PointingDeviceInterfaceADB = 0x08,
2072 PointingDeviceInterfaceBusMouseDB9 = 0xA0,
2073 PointingDeviceInterfaceBusMouseMicroDin = 0xA1,
2074 PointingDeviceInterfaceUsb = 0xA2,
2075 PointingDeviceInterfaceI2c = 0xA3,
2076 PointingDeviceInterfaceSpi = 0xA4
2078
2086typedef struct {
2087 SMBIOS_STRUCTURE Hdr;
2088 UINT8 Type;
2090 UINT8 NumberOfButtons;
2092
2096typedef enum {
2097 PortableBatteryDeviceChemistryOther = 0x01,
2098 PortableBatteryDeviceChemistryUnknown = 0x02,
2099 PortableBatteryDeviceChemistryLeadAcid = 0x03,
2100 PortableBatteryDeviceChemistryNickelCadmium = 0x04,
2101 PortableBatteryDeviceChemistryNickelMetalHydride = 0x05,
2102 PortableBatteryDeviceChemistryLithiumIon = 0x06,
2103 PortableBatteryDeviceChemistryZincAir = 0x07,
2104 PortableBatteryDeviceChemistryLithiumPolymer = 0x08
2106
2114typedef struct {
2115 SMBIOS_STRUCTURE Hdr;
2116 SMBIOS_TABLE_STRING Location;
2117 SMBIOS_TABLE_STRING Manufacturer;
2118 SMBIOS_TABLE_STRING ManufactureDate;
2119 SMBIOS_TABLE_STRING SerialNumber;
2120 SMBIOS_TABLE_STRING DeviceName;
2122 UINT16 DeviceCapacity;
2123 UINT16 DesignVoltage;
2124 SMBIOS_TABLE_STRING SBDSVersionNumber;
2125 UINT8 MaximumErrorInBatteryData;
2126 UINT16 SBDSSerialNumber;
2127 UINT16 SBDSManufactureDate;
2128 SMBIOS_TABLE_STRING SBDSDeviceChemistry;
2129 UINT8 DesignCapacityMultiplier;
2130 UINT32 OEMSpecific;
2132
2142typedef struct {
2143 SMBIOS_STRUCTURE Hdr;
2144 UINT8 Capabilities;
2145 UINT16 ResetCount;
2146 UINT16 ResetLimit;
2147 UINT16 TimerInterval;
2148 UINT16 Timeout;
2150
2156typedef struct {
2157 SMBIOS_STRUCTURE Hdr;
2158 UINT8 HardwareSecuritySettings;
2160
2169typedef struct {
2170 SMBIOS_STRUCTURE Hdr;
2171 UINT8 NextScheduledPowerOnMonth;
2172 UINT8 NextScheduledPowerOnDayOfMonth;
2173 UINT8 NextScheduledPowerOnHour;
2174 UINT8 NextScheduledPowerOnMinute;
2175 UINT8 NextScheduledPowerOnSecond;
2177
2181typedef struct {
2182 UINT8 VoltageProbeSite : 5;
2183 UINT8 VoltageProbeStatus : 3;
2185
2192typedef struct {
2193 SMBIOS_STRUCTURE Hdr;
2194 SMBIOS_TABLE_STRING Description;
2195 MISC_VOLTAGE_PROBE_LOCATION LocationAndStatus;
2196 UINT16 MaximumValue;
2197 UINT16 MinimumValue;
2198 UINT16 Resolution;
2199 UINT16 Tolerance;
2200 UINT16 Accuracy;
2201 UINT32 OEMDefined;
2202 UINT16 NominalValue;
2204
2208typedef struct {
2209 UINT8 CoolingDevice : 5;
2210 UINT8 CoolingDeviceStatus : 3;
2212
2219typedef struct {
2220 SMBIOS_STRUCTURE Hdr;
2221 UINT16 TemperatureProbeHandle;
2222 MISC_COOLING_DEVICE_TYPE DeviceTypeAndStatus;
2223 UINT8 CoolingUnitGroup;
2224 UINT32 OEMDefined;
2225 UINT16 NominalSpeed;
2226 //
2227 // Add for smbios 2.7
2228 //
2229 SMBIOS_TABLE_STRING Description;
2231
2235typedef struct {
2236 UINT8 TemperatureProbeSite : 5;
2237 UINT8 TemperatureProbeStatus : 3;
2239
2246typedef struct {
2247 SMBIOS_STRUCTURE Hdr;
2248 SMBIOS_TABLE_STRING Description;
2249 MISC_TEMPERATURE_PROBE_LOCATION LocationAndStatus;
2250 UINT16 MaximumValue;
2251 UINT16 MinimumValue;
2252 UINT16 Resolution;
2253 UINT16 Tolerance;
2254 UINT16 Accuracy;
2255 UINT32 OEMDefined;
2256 UINT16 NominalValue;
2258
2262typedef struct {
2263 UINT8 ElectricalCurrentProbeSite : 5;
2264 UINT8 ElectricalCurrentProbeStatus : 3;
2266
2273typedef struct {
2274 SMBIOS_STRUCTURE Hdr;
2275 SMBIOS_TABLE_STRING Description;
2277 UINT16 MaximumValue;
2278 UINT16 MinimumValue;
2279 UINT16 Resolution;
2280 UINT16 Tolerance;
2281 UINT16 Accuracy;
2282 UINT32 OEMDefined;
2283 UINT16 NominalValue;
2285
2293typedef struct {
2294 SMBIOS_STRUCTURE Hdr;
2295 SMBIOS_TABLE_STRING ManufacturerName;
2296 UINT8 Connections;
2298
2304typedef struct {
2305 SMBIOS_STRUCTURE Hdr;
2306 UINT8 Checksum;
2307 UINT8 Reserved1;
2308 UINT16 Reserved2;
2309 UINT32 BisEntry16;
2310 UINT32 BisEntry32;
2311 UINT64 Reserved3;
2312 UINT32 Reserved4;
2314
2318typedef enum {
2319 BootInformationStatusNoError = 0x00,
2320 BootInformationStatusNoBootableMedia = 0x01,
2321 BootInformationStatusNormalOSFailedLoading = 0x02,
2322 BootInformationStatusFirmwareDetectedFailure = 0x03,
2323 BootInformationStatusOSDetectedFailure = 0x04,
2324 BootInformationStatusUserRequestedBoot = 0x05,
2325 BootInformationStatusSystemSecurityViolation = 0x06,
2326 BootInformationStatusPreviousRequestedImage = 0x07,
2327 BootInformationStatusWatchdogTimerExpired = 0x08,
2328 BootInformationStatusStartReserved = 0x09,
2329 BootInformationStatusStartOemSpecific = 0x80,
2330 BootInformationStatusStartProductSpecific = 0xC0
2332
2344typedef struct {
2345 SMBIOS_STRUCTURE Hdr;
2346 UINT8 Reserved[6];
2349
2356typedef struct {
2357 SMBIOS_STRUCTURE Hdr;
2361 UINT32 VendorSyndrome;
2362 UINT64 MemoryArrayErrorAddress;
2363 UINT64 DeviceErrorAddress;
2364 UINT32 ErrorResolution;
2366
2370typedef enum {
2371 ManagementDeviceTypeOther = 0x01,
2372 ManagementDeviceTypeUnknown = 0x02,
2373 ManagementDeviceTypeLm75 = 0x03,
2374 ManagementDeviceTypeLm78 = 0x04,
2375 ManagementDeviceTypeLm79 = 0x05,
2376 ManagementDeviceTypeLm80 = 0x06,
2377 ManagementDeviceTypeLm81 = 0x07,
2378 ManagementDeviceTypeAdm9240 = 0x08,
2379 ManagementDeviceTypeDs1780 = 0x09,
2380 ManagementDeviceTypeMaxim1617 = 0x0A,
2381 ManagementDeviceTypeGl518Sm = 0x0B,
2382 ManagementDeviceTypeW83781D = 0x0C,
2383 ManagementDeviceTypeHt82H791 = 0x0D
2385
2389typedef enum {
2390 ManagementDeviceAddressTypeOther = 0x01,
2391 ManagementDeviceAddressTypeUnknown = 0x02,
2392 ManagementDeviceAddressTypeIOPort = 0x03,
2393 ManagementDeviceAddressTypeMemory = 0x04,
2394 ManagementDeviceAddressTypeSmbus = 0x05
2396
2404typedef struct {
2405 SMBIOS_STRUCTURE Hdr;
2406 SMBIOS_TABLE_STRING Description;
2407 UINT8 Type;
2408 UINT32 Address;
2411
2418typedef struct {
2419 SMBIOS_STRUCTURE Hdr;
2420 SMBIOS_TABLE_STRING Description;
2421 UINT16 ManagementDeviceHandle;
2422 UINT16 ComponentHandle;
2423 UINT16 ThresholdHandle;
2425
2432typedef struct {
2433 SMBIOS_STRUCTURE Hdr;
2434 UINT16 LowerThresholdNonCritical;
2435 UINT16 UpperThresholdNonCritical;
2436 UINT16 LowerThresholdCritical;
2437 UINT16 UpperThresholdCritical;
2438 UINT16 LowerThresholdNonRecoverable;
2439 UINT16 UpperThresholdNonRecoverable;
2441
2445typedef struct {
2446 UINT8 DeviceLoad;
2447 UINT16 DeviceHandle;
2449
2453typedef enum {
2454 MemoryChannelTypeOther = 0x01,
2455 MemoryChannelTypeUnknown = 0x02,
2456 MemoryChannelTypeRambus = 0x03,
2457 MemoryChannelTypeSyncLink = 0x04
2459
2467typedef struct {
2468 SMBIOS_STRUCTURE Hdr;
2469 UINT8 ChannelType;
2470 UINT8 MaximumChannelLoad;
2471 UINT8 MemoryDeviceCount;
2472 MEMORY_DEVICE MemoryDevice[1];
2474
2478typedef enum {
2479 IPMIDeviceInfoInterfaceTypeUnknown = 0x00,
2485
2497typedef struct {
2498 SMBIOS_STRUCTURE Hdr;
2500 UINT8 IPMISpecificationRevision;
2501 UINT8 I2CSlaveAddress;
2502 UINT8 NVStorageDeviceAddress;
2503 UINT64 BaseAddress;
2504 UINT8 BaseAddressModifier_InterruptInfo;
2505 UINT8 InterruptNumber;
2507
2511typedef struct {
2512 UINT16 PowerSupplyHotReplaceable : 1;
2513 UINT16 PowerSupplyPresent : 1;
2514 UINT16 PowerSupplyUnplugged : 1;
2515 UINT16 InputVoltageRangeSwitch : 4;
2516 UINT16 PowerSupplyStatus : 3;
2517 UINT16 PowerSupplyType : 4;
2518 UINT16 Reserved : 2;
2520
2527typedef struct {
2528 SMBIOS_STRUCTURE Hdr;
2529 UINT8 PowerUnitGroup;
2530 SMBIOS_TABLE_STRING Location;
2531 SMBIOS_TABLE_STRING DeviceName;
2532 SMBIOS_TABLE_STRING Manufacturer;
2533 SMBIOS_TABLE_STRING SerialNumber;
2534 SMBIOS_TABLE_STRING AssetTagNumber;
2535 SMBIOS_TABLE_STRING ModelPartNumber;
2536 SMBIOS_TABLE_STRING RevisionLevel;
2537 UINT16 MaxPowerCapacity;
2538 SYS_POWER_SUPPLY_CHARACTERISTICS PowerSupplyCharacteristics;
2539 UINT16 InputVoltageProbeHandle;
2540 UINT16 CoolingDeviceHandle;
2541 UINT16 InputCurrentProbeHandle;
2543
2547typedef struct {
2548 UINT8 EntryLength;
2549 UINT16 ReferencedHandle;
2550 UINT8 ReferencedOffset;
2551 SMBIOS_TABLE_STRING EntryString;
2552 UINT8 Value[1];
2554
2561typedef struct {
2562 SMBIOS_STRUCTURE Hdr;
2563 UINT8 NumberOfAdditionalInformationEntries;
2564 ADDITIONAL_INFORMATION_ENTRY AdditionalInfoEntries[1];
2566
2570typedef enum {
2571 OnBoardDeviceExtendedTypeOther = 0x01,
2572 OnBoardDeviceExtendedTypeUnknown = 0x02,
2573 OnBoardDeviceExtendedTypeVideo = 0x03,
2574 OnBoardDeviceExtendedTypeScsiController = 0x04,
2575 OnBoardDeviceExtendedTypeEthernet = 0x05,
2576 OnBoardDeviceExtendedTypeTokenRing = 0x06,
2577 OnBoardDeviceExtendedTypeSound = 0x07,
2578 OnBoardDeviceExtendedTypePATAController = 0x08,
2579 OnBoardDeviceExtendedTypeSATAController = 0x09,
2580 OnBoardDeviceExtendedTypeSASController = 0x0A,
2581 OnBoardDeviceExtendedTypeWirelessLAN = 0x0B,
2582 OnBoardDeviceExtendedTypeBluetooth = 0x0C,
2583 OnBoardDeviceExtendedTypeWWAN = 0x0D,
2584 OnBoardDeviceExtendedTypeeMMC = 0x0E,
2585 OnBoardDeviceExtendedTypeNvme = 0x0F,
2586 OnBoardDeviceExtendedTypeUfc = 0x10
2588
2597typedef struct {
2598 SMBIOS_STRUCTURE Hdr;
2599 SMBIOS_TABLE_STRING ReferenceDesignation;
2601 UINT8 DeviceTypeInstance;
2602 UINT16 SegmentGroupNum;
2603 UINT8 BusNum;
2604 UINT8 DevFuncNum;
2606
2610typedef struct {
2611 UINT8 ProtocolType;
2612 UINT8 ProtocolTypeDataLen;
2613 UINT8 ProtocolTypeData[1];
2615
2620typedef enum {
2621 MCHostInterfaceTypeNetworkHostInterface = 0x40,
2622 MCHostInterfaceTypeOemDefined = 0xF0
2624
2628typedef enum {
2629 MCHostInterfaceProtocolTypeIPMI = 0x02,
2630 MCHostInterfaceProtocolTypeMCTP = 0x03,
2631 MCHostInterfaceProtocolTypeRedfishOverIP = 0x04,
2632 MCHostInterfaceProtocolTypeOemDefined = 0xF0
2634
2652typedef struct {
2653 SMBIOS_STRUCTURE Hdr;
2655 UINT8 InterfaceTypeSpecificDataLength;
2656 UINT8 InterfaceTypeSpecificData[4];
2658
2662typedef enum {
2663 ProcessorSpecificBlockArchTypeReserved = 0x00,
2664 ProcessorSpecificBlockArchTypeIa32 = 0x01,
2665 ProcessorSpecificBlockArchTypeX64 = 0x02,
2666 ProcessorSpecificBlockArchTypeItanium = 0x03,
2667 ProcessorSpecificBlockArchTypeAarch32 = 0x04,
2668 ProcessorSpecificBlockArchTypeAarch64 = 0x05,
2669 ProcessorSpecificBlockArchTypeRiscVRV32 = 0x06,
2670 ProcessorSpecificBlockArchTypeRiscVRV64 = 0x07,
2671 ProcessorSpecificBlockArchTypeRiscVRV128 = 0x08
2673
2677typedef struct {
2678 UINT8 Length;
2679 UINT8 ProcessorArchType;
2685
2700typedef struct {
2701 SMBIOS_STRUCTURE Hdr;
2708
2712typedef struct {
2713 SMBIOS_STRUCTURE Hdr;
2714 UINT8 VendorID[4];
2715 UINT8 MajorSpecVersion;
2716 UINT8 MinorSpecVersion;
2717 UINT32 FirmwareVersion1;
2718 UINT32 FirmwareVersion2;
2719 SMBIOS_TABLE_STRING Description;
2720 UINT64 Characteristics;
2721 UINT32 OemDefined;
2723
2727typedef enum {
2728 VersionFormatTypeFreeForm = 0x00,
2729 VersionFormatTypeMajorMinor = 0x01,
2730 VersionFormatType32BitHex = 0x02,
2731 VersionFormatType64BitHex = 0x03,
2732 VersionFormatTypeReserved = 0x04,
2733 VersionFormatTypeOem = 0x80
2735
2739typedef enum {
2740 FirmwareIdFormatTypeFreeForm = 0x00,
2741 FirmwareIdFormatTypeUuid = 0x01,
2742 FirmwareIdFormatTypeReserved = 0x04,
2745
2749typedef enum {
2750 CharacteristicsUpdatable = 0x00,
2751 CharacteristicsWriteProtected = 0x01,
2752 CharacteristicsReserved = 0x02
2754
2758typedef enum {
2759 FirmwareInventoryStateOther = 0x01,
2760 FirmwareInventoryStateUnknown = 0x02,
2761 FirmwareInventoryStateDisabled = 0x03,
2762 FirmwareInventoryStateEnabled = 0x04,
2763 FirmwareInventoryStateAbsent = 0x05,
2764 FirmwareInventoryStateStandbyOffline = 0x06,
2765 FirmwareInventoryStateStandbySpare = 0x07,
2766 FirmwareInventoryStateUnavailableOffline = 0x08,
2768
2782typedef struct {
2783 SMBIOS_STRUCTURE Hdr;
2784 SMBIOS_HANDLE RefHandle;
2785
2786 UINT8 FirmwareComponentName;
2787 UINT8 FirmwareVersion;
2789 UINT8 FirmwareId;
2790 UINT8 FirmwareIdFormat;
2791 UINT8 ReleaseDate;
2792 UINT8 Manufacturer;
2793 UINT8 LowestSupportedVersion;
2794 UINT64 ImageSize;
2795 UINT32 Characteristics;
2796 UINT8 State;
2797 UINT8 AssociatedComponentCount;
2803
2807typedef enum {
2808 StringPropertyIdNone = 0x0000,
2809 StringPropertyIdDevicePath = 0x0001,
2810 StringPropertyIdReserved = 0x0002,
2812 StringPropertyIdOem = 0xC000
2814
2822typedef struct {
2823 SMBIOS_STRUCTURE Hdr;
2824 SMBIOS_HANDLE RefHandle;
2825 UINT16 StringPropertyId;
2826 UINT8 StringPropertyValue;
2827 SMBIOS_HANDLE ParentHandle;
2829
2833typedef struct {
2834 SMBIOS_STRUCTURE Hdr;
2836
2840typedef struct {
2841 SMBIOS_STRUCTURE Hdr;
2843
2847typedef union {
2848 SMBIOS_STRUCTURE *Hdr;
2849 SMBIOS_TABLE_TYPE0 *Type0;
2850 SMBIOS_TABLE_TYPE1 *Type1;
2851 SMBIOS_TABLE_TYPE2 *Type2;
2852 SMBIOS_TABLE_TYPE3 *Type3;
2853 SMBIOS_TABLE_TYPE4 *Type4;
2854 SMBIOS_TABLE_TYPE5 *Type5;
2855 SMBIOS_TABLE_TYPE6 *Type6;
2856 SMBIOS_TABLE_TYPE7 *Type7;
2857 SMBIOS_TABLE_TYPE8 *Type8;
2858 SMBIOS_TABLE_TYPE9 *Type9;
2859 SMBIOS_TABLE_TYPE10 *Type10;
2860 SMBIOS_TABLE_TYPE11 *Type11;
2861 SMBIOS_TABLE_TYPE12 *Type12;
2862 SMBIOS_TABLE_TYPE13 *Type13;
2863 SMBIOS_TABLE_TYPE14 *Type14;
2864 SMBIOS_TABLE_TYPE15 *Type15;
2865 SMBIOS_TABLE_TYPE16 *Type16;
2866 SMBIOS_TABLE_TYPE17 *Type17;
2867 SMBIOS_TABLE_TYPE18 *Type18;
2868 SMBIOS_TABLE_TYPE19 *Type19;
2869 SMBIOS_TABLE_TYPE20 *Type20;
2870 SMBIOS_TABLE_TYPE21 *Type21;
2871 SMBIOS_TABLE_TYPE22 *Type22;
2872 SMBIOS_TABLE_TYPE23 *Type23;
2873 SMBIOS_TABLE_TYPE24 *Type24;
2874 SMBIOS_TABLE_TYPE25 *Type25;
2875 SMBIOS_TABLE_TYPE26 *Type26;
2876 SMBIOS_TABLE_TYPE27 *Type27;
2877 SMBIOS_TABLE_TYPE28 *Type28;
2878 SMBIOS_TABLE_TYPE29 *Type29;
2879 SMBIOS_TABLE_TYPE30 *Type30;
2880 SMBIOS_TABLE_TYPE31 *Type31;
2881 SMBIOS_TABLE_TYPE32 *Type32;
2882 SMBIOS_TABLE_TYPE33 *Type33;
2883 SMBIOS_TABLE_TYPE34 *Type34;
2884 SMBIOS_TABLE_TYPE35 *Type35;
2885 SMBIOS_TABLE_TYPE36 *Type36;
2886 SMBIOS_TABLE_TYPE37 *Type37;
2887 SMBIOS_TABLE_TYPE38 *Type38;
2888 SMBIOS_TABLE_TYPE39 *Type39;
2889 SMBIOS_TABLE_TYPE40 *Type40;
2890 SMBIOS_TABLE_TYPE41 *Type41;
2891 SMBIOS_TABLE_TYPE42 *Type42;
2892 SMBIOS_TABLE_TYPE43 *Type43;
2893 SMBIOS_TABLE_TYPE44 *Type44;
2894 SMBIOS_TABLE_TYPE45 *Type45;
2895 SMBIOS_TABLE_TYPE46 *Type46;
2896 SMBIOS_TABLE_TYPE126 *Type126;
2897 SMBIOS_TABLE_TYPE127 *Type127;
2898 UINT8 *Raw;
2900
2901#pragma pack()
2902
2903#endif
MEMORY_ERROR_DETECT_METHOD
Definition: SmBios.h:954
MEMORY_ERROR_CORRECTION
Definition: SmBios.h:1727
MEMORY_CHANNEL_TYPE
Definition: SmBios.h:2453
MISC_SLOT_INFORMATION
Definition: SmBios.h:1398
MISC_ONBOARD_DEVICE_TYPE
Definition: SmBios.h:1521
MEMORY_ERROR_GRANULARITY
Definition: SmBios.h:1969
FIRMWARE_INVENTORY_FIRMWARE_ID_FORMAT_TYPE
Definition: SmBios.h:2739
@ InventoryFirmwareIdFormatTypeOem
0x04 - 0x7F are reserved
Definition: SmBios.h:2743
MISC_SYSTEM_WAKEUP_TYPE
Definition: SmBios.h:304
MEMORY_DEVICE_TYPE
Definition: SmBios.h:1782
BMC_INTERFACE_TYPE
Definition: SmBios.h:2478
@ IPMIDeviceInfoInterfaceTypeSMIC
The Server Management Interface Chip.
Definition: SmBios.h:2481
@ IPMIDeviceInfoInterfaceTypeBT
The Block Transfer.
Definition: SmBios.h:2482
@ IPMIDeviceInfoInterfaceTypeKCS
The Keyboard Controller Style.
Definition: SmBios.h:2480
@ IPMIDeviceInfoInterfaceTypeSSIF
SMBus System Interface.
Definition: SmBios.h:2483
FIRMWARE_INVENTORY_CHARACTERISTICS
Definition: SmBios.h:2749
BASE_BOARD_TYPE
Definition: SmBios.h:351
MISC_MANAGEMENT_DEVICE_TYPE
Definition: SmBios.h:2370
MISC_SLOT_USAGE
Definition: SmBios.h:1411
MISC_SLOT_PHYSICAL_WIDTH
Definition: SmBios.h:1378
@ SlotPhysicalWidth12X
Or X12.
Definition: SmBios.h:1390
@ SlotPhysicalWidth8X
Or X8.
Definition: SmBios.h:1389
@ SlotPhysicalWidth1X
Or X1.
Definition: SmBios.h:1386
@ SlotPhysicalWidth2X
Or X2.
Definition: SmBios.h:1387
@ SlotPhysicalWidth32X
Or X32.
Definition: SmBios.h:1392
@ SlotPhysicalWidth16X
Or X16.
Definition: SmBios.h:1391
@ SlotPhysicalWidth4X
Or X4.
Definition: SmBios.h:1388
PROCESSOR_FAMILY2_DATA
Definition: SmBios.h:724
MC_HOST_INTERFACE_PROTOCOL_TYPE
Definition: SmBios.h:2628
MISC_BOOT_INFORMATION_STATUS_DATA_TYPE
Definition: SmBios.h:2318
MISC_CHASSIS_SECURITY_STATE
Definition: SmBios.h:445
MISC_PORT_CONNECTOR_TYPE
Definition: SmBios.h:1164
MEMORY_DEVICE_TECHNOLOGY
Definition: SmBios.h:1842
PROCESSOR_TYPE_DATA
Definition: SmBios.h:504
MISC_CHASSIS_STATE
Definition: SmBios.h:433
PROCESSOR_UPGRADE
Definition: SmBios.h:757
@ ProcessorUpgradeSocketA
Socket 462.
Definition: SmBios.h:771
@ ProcessorUpgradePiggyBack
Replaceable.
Definition: SmBios.h:762
@ ProcessorUpgradeSocketLGA1155
SMBIOS spec 2.8.0 updated the name.
Definition: SmBios.h:793
EVENT_LOG_VARIABLE_DATA
Definition: SmBios.h:1647
BUILTIN_POINTING_DEVICE_INTERFACE
Definition: SmBios.h:2063
MISC_PORT_TYPE
Definition: SmBios.h:1212
@ PortTypeMfdp
Multi-Function Display Port.
Definition: SmBios.h:1247
BUILTIN_POINTING_DEVICE_TYPE
Definition: SmBios.h:2048
MISC_SLOT_DATA_BUS_WIDTH
Definition: SmBios.h:1358
@ SlotDataBusWidth12X
Or X12.
Definition: SmBios.h:1370
@ SlotDataBusWidth16X
Or X16.
Definition: SmBios.h:1371
@ SlotDataBusWidth1X
Or X1.
Definition: SmBios.h:1366
@ SlotDataBusWidth8X
Or X8.
Definition: SmBios.h:1369
@ SlotDataBusWidth32X
Or X32.
Definition: SmBios.h:1372
@ SlotDataBusWidth2X
Or X2.
Definition: SmBios.h:1367
@ SlotDataBusWidth4X
Or X4.
Definition: SmBios.h:1368
PROCESSOR_SPECIFIC_BLOCK_ARCH_TYPE
Definition: SmBios.h:2662
FIRMWARE_INVENTORY_STATE
Definition: SmBios.h:2758
MISC_MANAGEMENT_DEVICE_ADDRESS_TYPE
Definition: SmBios.h:2389
MEMORY_ERROR_TYPE
Definition: SmBios.h:1949
UINT16 SMBIOS_HANDLE
Definition: SmBios.h:133
PROCESSOR_FAMILY_DATA
Definition: SmBios.h:516
@ ProcessorFamilyIntelCoreSolo
SMBIOS spec 2.6 updated this value.
Definition: SmBios.h:670
@ ProcessorFamilyAmdASeries
SMBIOS spec 2.8.0 updated the name.
Definition: SmBios.h:586
UINT8 SMBIOS_TABLE_STRING
Definition: SmBios.h:189
MEMORY_ARRAY_LOCATION
Definition: SmBios.h:1693
MISC_SLOT_HEIGHT
Definition: SmBios.h:1459
MISC_SLOT_LENGTH
Definition: SmBios.h:1422
CACHE_ERROR_TYPE_DATA
Definition: SmBios.h:1094
@ CacheErrorMultiBit
ECC.
Definition: SmBios.h:1100
@ CacheErrorSingleBit
ECC.
Definition: SmBios.h:1099
MEMORY_SUPPORT_INTERLEAVE_TYPE
Definition: SmBios.h:981
CACHE_TYPE_DATA
Definition: SmBios.h:1106
PORTABLE_BATTERY_DEVICE_CHEMISTRY
Definition: SmBios.h:2096
MISC_SLOT_TYPE
Definition: SmBios.h:1273
@ SlotTypeOCPNIC30LargeFormFactor
LFF.
Definition: SmBios.h:1312
@ SlotTypePCIExpressGen5SFF_8639
U.2.
Definition: SmBios.h:1310
@ SlotTypePCIExpressGen4SFF_8639
U.2.
Definition: SmBios.h:1309
@ SlotTypePciExpressMini52pinWithBSKO
PCI Express Mini 52-pin (CEM spec. 2.0) with bottom-side keep-outs.
Definition: SmBios.h:1306
@ SlotTypePciExpressMini76pin
PCI Express Mini 76-pin (CEM spec. 2.0) Corresponds to Display-Mini card.
Definition: SmBios.h:1308
@ SlotTypePciExpressMini52pinWithoutBSKO
PCI Express Mini 52-pin (CEM spec. 2.0) without bottom-side keep-outs.
Definition: SmBios.h:1307
@ SlotTypeOCPNIC30SmallFormFactor
SFF.
Definition: SmBios.h:1311
MC_HOST_INTERFACE_TYPE
Definition: SmBios.h:2620
ONBOARD_DEVICE_EXTENDED_INFO_TYPE
Definition: SmBios.h:2570
MEMORY_FORM_FACTOR
Definition: SmBios.h:1760
FIRMWARE_INVENTORY_VERSION_FORMAT_TYPE
Definition: SmBios.h:2727
@ VersionFormatTypeOem
0x04 - 0x7F are reserved
Definition: SmBios.h:2733
UINT8 SMBIOS_TYPE
Definition: SmBios.h:121
STRING_PROPERTY_ID
Definition: SmBios.h:2807
@ StringPropertyIdOem
BIOS vendor 0x8000 - 0xBFFF.
Definition: SmBios.h:2812
@ StringPropertyIdBiosVendor
Reserved 0x0002 - 0x7FFF.
Definition: SmBios.h:2811
MISC_CHASSIS_TYPE
Definition: SmBios.h:391
EVENT_LOG_TYPE_DATA
Definition: SmBios.h:1615
@ EventLogTypeAvailForSys
0x80 - 0xFE
Definition: SmBios.h:1640
@ EventLogTypeUnused
0x18 - 0x7F
Definition: SmBios.h:1639
MEMORY_ERROR_OPERATION
Definition: SmBios.h:1979
MEMORY_ARRAY_USE
Definition: SmBios.h:1714
CACHE_ASSOCIATIVITY_DATA
Definition: SmBios.h:1117
UINT8 DeviceType
Definition: SmBios.h:1538
UINT8 LogType
The enumeration value from EVENT_LOG_TYPE_DATA.
Definition: SmBios.h:1663
Definition: Base.h:213
UINT8 InstalledOrEnabledSize
Size (n), where 2**n is the size in MB.
Definition: SmBios.h:1051
UINT32 Reserved
Bits 0-1.
Definition: SmBios.h:196
UINT8 Reserved
Set to 0.
Definition: SmBios.h:1453
UINT8 ProcessorVoltageReserved
Bits 4-6, must be zero.
Definition: SmBios.h:750
UINT8 ProcessorVoltageCapabilityReserved
Bit 3, must be zero.
Definition: SmBios.h:749
UINT8 Use
The enumeration value from MEMORY_ARRAY_USE.
Definition: SmBios.h:1746
UINT8 MemoryErrorCorrection
The enumeration value from MEMORY_ERROR_CORRECTION.
Definition: SmBios.h:1747
UINT8 Location
The enumeration value from MEMORY_ARRAY_LOCATION.
Definition: SmBios.h:1745
UINT8 MemoryType
The enumeration value from MEMORY_DEVICE_TYPE.
Definition: SmBios.h:1898
UINT8 FormFactor
The enumeration value from MEMORY_FORM_FACTOR.
Definition: SmBios.h:1894
UINT8 MemoryTechnology
The enumeration value from MEMORY_DEVICE_TECHNOLOGY.
Definition: SmBios.h:1928
UINT8 ErrorGranularity
The enumeration value from MEMORY_ERROR_GRANULARITY.
Definition: SmBios.h:1996
UINT8 ErrorType
The enumeration value from MEMORY_ERROR_TYPE.
Definition: SmBios.h:1995
UINT8 ErrorOperation
The enumeration value from MEMORY_ERROR_OPERATION.
Definition: SmBios.h:1997
UINT8 WakeUpType
The enumeration value from MISC_SYSTEM_WAKEUP_TYPE.
Definition: SmBios.h:331
UINT8 Type
The enumeration value from BUILTIN_POINTING_DEVICE_TYPE.
Definition: SmBios.h:2088
UINT8 Interface
The enumeration value from BUILTIN_POINTING_DEVICE_INTERFACE.
Definition: SmBios.h:2089
UINT8 DeviceChemistry
The enumeration value from PORTABLE_BATTERY_DEVICE_CHEMISTRY.
Definition: SmBios.h:2121
UINT8 BoardType
The enumeration value from BASE_BOARD_TYPE.
Definition: SmBios.h:383
UINT8 BootStatus
The enumeration value from MISC_BOOT_INFORMATION_STATUS_DATA_TYPE.
Definition: SmBios.h:2347
UINT8 ErrorGranularity
The enumeration value from MEMORY_ERROR_GRANULARITY.
Definition: SmBios.h:2359
UINT8 ErrorType
The enumeration value from MEMORY_ERROR_TYPE.
Definition: SmBios.h:2358
UINT8 ErrorOperation
The enumeration value from MEMORY_ERROR_OPERATION.
Definition: SmBios.h:2360
UINT8 AddressType
The enumeration value from MISC_MANAGEMENT_DEVICE_ADDRESS_TYPE.
Definition: SmBios.h:2409
UINT8 Type
The enumeration value from MISC_MANAGEMENT_DEVICE_TYPE.
Definition: SmBios.h:2407
UINT8 InterfaceType
The enumeration value from BMC_INTERFACE_TYPE.
Definition: SmBios.h:2499
UINT8 SecurityStatus
The enumeration value from MISC_CHASSIS_SECURITY_STATE.
Definition: SmBios.h:481
UINT8 ThermalState
The enumeration value from MISC_CHASSIS_STATE.
Definition: SmBios.h:480
UINT8 BootupState
The enumeration value from MISC_CHASSIS_STATE.
Definition: SmBios.h:478
UINT8 PowerSupplyState
The enumeration value from MISC_CHASSIS_STATE.
Definition: SmBios.h:479
UINT8 DeviceType
The enumeration value from ONBOARD_DEVICE_EXTENDED_INFO_TYPE.
Definition: SmBios.h:2600
UINT8 InterfaceType
The enumeration value from MC_HOST_INTERFACE_TYPE.
Definition: SmBios.h:2654
SMBIOS_HANDLE RefHandle
Definition: SmBios.h:2702
PROCESSOR_SPECIFIC_BLOCK ProcessorSpecificBlock
Definition: SmBios.h:2706
UINT8 FirmwareVersionFormat
The enumeration value from FIRMWARE_INVENTORY_VERSION_FORMAT_TYPE.
Definition: SmBios.h:2788
UINT8 ProcessorUpgrade
The enumeration value from PROCESSOR_UPGRADE.
Definition: SmBios.h:925
UINT8 ProcessorType
The enumeration value from PROCESSOR_TYPE_DATA.
Definition: SmBios.h:915
UINT8 ProcessorFamily
The enumeration value from PROCESSOR_FAMILY_DATA.
Definition: SmBios.h:916
UINT8 SupportInterleave
The enumeration value from MEMORY_SUPPORT_INTERLEAVE_TYPE.
Definition: SmBios.h:1019
UINT8 ErrDetectMethod
The enumeration value from MEMORY_ERROR_DETECT_METHOD.
Definition: SmBios.h:1017
UINT8 CurrentInterleave
The enumeration value from MEMORY_SUPPORT_INTERLEAVE_TYPE .
Definition: SmBios.h:1020
UINT8 SystemCacheType
The enumeration value from CACHE_TYPE_DATA.
Definition: SmBios.h:1152
UINT8 Associativity
The enumeration value from CACHE_ASSOCIATIVITY_DATA.
Definition: SmBios.h:1153
UINT8 ErrorCorrectionType
The enumeration value from CACHE_ERROR_TYPE_DATA.
Definition: SmBios.h:1151
UINT8 PortType
The enumeration value from MISC_PORT_TYPE.
Definition: SmBios.h:1267
UINT8 ExternalConnectorType
The enumeration value from MISC_PORT_CONNECTOR_TYPE.
Definition: SmBios.h:1266
UINT8 InternalConnectorType
The enumeration value from MISC_PORT_CONNECTOR_TYPE.
Definition: SmBios.h:1264
UINT8 SlotType
The enumeration value from MISC_SLOT_TYPE.
Definition: SmBios.h:1487
UINT8 SlotDataBusWidth
The enumeration value from MISC_SLOT_DATA_BUS_WIDTH.
Definition: SmBios.h:1488
UINT8 CurrentUsage
The enumeration value from MISC_SLOT_USAGE.
Definition: SmBios.h:1489
UINT8 SlotHeight
The enumeration value from MISC_SLOT_HEIGHT.
Definition: SmBios.h:1515
UINT8 SlotLength
The enumeration value from MISC_SLOT_LENGTH.
Definition: SmBios.h:1490
UINT8 CpuStatus
Indicates the status of the processor.
Definition: SmBios.h:890
UINT8 SocketPopulated
Indicates if the processor socket is populated or not.
Definition: SmBios.h:892
UINT8 Reserved1
Reserved for future use. Must be set to zero.
Definition: SmBios.h:891
UINT8 Reserved2
Reserved for future use. Must be set to zero.
Definition: SmBios.h:893