mirror of
https://github.com/processhacker/phnt
synced 2026-06-08 16:49:04 +00:00
2807 lines
116 KiB
C
2807 lines
116 KiB
C
/*
|
|
* Definitions that describe SMBIOS - https://www.dmtf.org/standards/smbios
|
|
*
|
|
* This file is part of System Informer.
|
|
*/
|
|
|
|
#ifndef _SMBIOS_H
|
|
#define _SMBIOS_H
|
|
|
|
typedef struct RAW_SMBIOS_DATA
|
|
{
|
|
UCHAR Used20CallingMethod;
|
|
UCHAR SMBIOSMajorVersion;
|
|
UCHAR SMBIOSMinorVersion;
|
|
UCHAR DmiRevision;
|
|
ULONG Length;
|
|
UCHAR SMBIOSTableData[ANYSIZE_ARRAY];
|
|
} RAW_SMBIOS_DATA, *PRAW_SMBIOS_DATA;
|
|
|
|
#include <pshpack1.h>
|
|
|
|
#define SMBIOS_INVALID_HANDLE ((USHORT)0x0FFFF)
|
|
#define SMBIOS_INVALID_STRING ((UCHAR)0)
|
|
#define SMBIOS_STRING_TABLE(x) (PVOID)((ULONG_PTR)x + x->Length)
|
|
|
|
#define SMBIOS_PROBE_STATUS_OTHER ((UCHAR)1)
|
|
#define SMBIOS_PROBE_STATUS_UNKNOWN ((UCHAR)2)
|
|
#define SMBIOS_PROBE_STATUS_OK ((UCHAR)3)
|
|
#define SMBIOS_PROBE_STATUS_NON_CRITICAL ((UCHAR)4)
|
|
#define SMBIOS_PROBE_STATUS_CRITICAL ((UCHAR)5)
|
|
#define SMBIOS_PROBE_STATUS_NON_RECOVERABLE ((UCHAR)6)
|
|
|
|
#define SMBIOS_MEMORY_ERROR_TYPE_OTHER ((UCHAR)1)
|
|
#define SMBIOS_MEMORY_ERROR_TYPE_UNKNOWN ((UCHAR)2)
|
|
#define SMBIOS_MEMORY_ERROR_TYPE_OK ((UCHAR)3)
|
|
#define SMBIOS_MEMORY_ERROR_TYPE_BAD_READ ((UCHAR)4)
|
|
#define SMBIOS_MEMORY_ERROR_TYPE_PARITY ((UCHAR)5)
|
|
#define SMBIOS_MEMORY_ERROR_TYPE_SINGLE_BIT ((UCHAR)6)
|
|
#define SMBIOS_MEMORY_ERROR_TYPE_DOUBLE_BIT ((UCHAR)7)
|
|
#define SMBIOS_MEMORY_ERROR_TYPE_MULTI_BIT ((UCHAR)8)
|
|
#define SMBIOS_MEMORY_ERROR_TYPE_NIBBLE ((UCHAR)9)
|
|
#define SMBIOS_MEMORY_ERROR_TYPE_CHECKSUM ((UCHAR)10)
|
|
#define SMBIOS_MEMORY_ERROR_TYPE_CRC ((UCHAR)11)
|
|
#define SMBIOS_MEMORY_ERROR_TYPE_CORRECTED_SINGLE_BIT ((UCHAR)12)
|
|
#define SMBIOS_MEMORY_ERROR_TYPE_CORRECTED ((UCHAR)13)
|
|
#define SMBIOS_MEMORY_ERROR_TYPE_UNCORRECTABLE ((UCHAR)14)
|
|
|
|
#define SMBIOS_MEMORY_ERROR_GRANULARITY_OTHER ((UCHAR)1)
|
|
#define SMBIOS_MEMORY_ERROR_GRANULARITY_UNKNOWN ((UCHAR)2)
|
|
#define SMBIOS_MEMORY_ERROR_GRANULARITY_DEVICE ((UCHAR)3)
|
|
#define SMBIOS_MEMORY_ERROR_GRANULARITY_PARTITION ((UCHAR)4)
|
|
|
|
#define SMBIOS_MEMORY_ERROR_OPERATION_OTHER ((UCHAR)1)
|
|
#define SMBIOS_MEMORY_ERROR_OPERATION_UNKNOWN ((UCHAR)2)
|
|
#define SMBIOS_MEMORY_ERROR_OPERATION_READ ((UCHAR)3)
|
|
#define SMBIOS_MEMORY_ERROR_OPERATION_WRITE ((UCHAR)4)
|
|
#define SMBIOS_MEMORY_ERROR_OPERATION_PARTIAL_WRITE ((UCHAR)5)
|
|
|
|
typedef struct _SMBIOS_ENTRY_POINT_2_1
|
|
{
|
|
UCHAR Signature[4]; // _SM_ (ASCII)
|
|
UCHAR Checksum;
|
|
UCHAR Length;
|
|
UCHAR MajorVersion;
|
|
UCHAR MinorVersion;
|
|
USHORT MaximumStructureSize;
|
|
UCHAR EntryPointRevision;
|
|
UCHAR Reserved[5];
|
|
UCHAR Signature2[5]; // _DMI_ (ASCII)
|
|
UCHAR IntermediateChecksum;
|
|
USHORT StructureTableLength;
|
|
ULONG StructureTableAddress;
|
|
USHORT NumberStructures;
|
|
UCHAR Revision;
|
|
} SMBIOS_ENTRY_POINT_2_1, *PSMBIOS_ENTRY_POINT_2_1;
|
|
|
|
C_ASSERT(sizeof(SMBIOS_ENTRY_POINT_2_1) == 0X1F);
|
|
|
|
typedef struct _SMBIOS_ENTRY_POINT_3_0
|
|
{
|
|
UCHAR Signature[5]; // _SM3_ (ASCII)
|
|
UCHAR Checksum;
|
|
UCHAR Length;
|
|
UCHAR MajorVersion;
|
|
UCHAR MinorVersion;
|
|
UCHAR DocumentRevision;
|
|
UCHAR EntryPointRevision;
|
|
UCHAR Reserved;
|
|
ULONG MaximumStructureSize;
|
|
ULONGLONG StructureTableAddress;
|
|
} SMBIOS_ENTRY_POINT_3_0, *PSMBIOS_ENTRY_POINT_3_0;
|
|
|
|
C_ASSERT(sizeof(SMBIOS_ENTRY_POINT_3_0) == 0x18);
|
|
|
|
typedef struct _SMBIOS_HEADER
|
|
{
|
|
UCHAR Type;
|
|
UCHAR Length;
|
|
USHORT Handle;
|
|
} SMBIOS_HEADER, *PSMBIOS_HEADER;
|
|
|
|
C_ASSERT(sizeof(SMBIOS_HEADER) == 4);
|
|
|
|
typedef struct _SMBIOS_GENERIC
|
|
{
|
|
UCHAR Type;
|
|
UCHAR Length;
|
|
USHORT Handle;
|
|
UCHAR Data[ANYSIZE_ARRAY];
|
|
} SMBIOS_GENERIC, *PSMBIOS_GENERIC;
|
|
|
|
//
|
|
// Platform Firmware Information (Type 0)
|
|
//
|
|
|
|
#define SMBIOS_FIRMWARE_INFORMATION_TYPE ((UCHAR)0)
|
|
|
|
typedef struct _SMBIOS_FIRMWARE_INFORMATION
|
|
{
|
|
SMBIOS_HEADER Header;
|
|
// 2.0+
|
|
UCHAR Vendor; // string
|
|
UCHAR Version; // string
|
|
USHORT StartingAddressSegment;
|
|
UCHAR ReleaseDate; // string
|
|
UCHAR RomSize;
|
|
ULONGLONG Characteristics; // SMBIOS_FIRMWARE_FLAG_*
|
|
// 2.4+
|
|
USHORT Characteristics2; // SMBIOS_FIRMWARE_FLAG_2_*
|
|
UCHAR MajorRelease;
|
|
UCHAR MinorRelease;
|
|
UCHAR ControllerMajorRelease;
|
|
UCHAR ControllerMinorRelease;
|
|
// 3.1+
|
|
union
|
|
{
|
|
struct
|
|
{
|
|
USHORT Unit : 2; // SMBIOS_FIRMWARE_ROM_UNIT_*
|
|
USHORT Size : 14;
|
|
};
|
|
|
|
USHORT Value;
|
|
} RomSize2;
|
|
} SMBIOS_FIRMWARE_INFORMATION, *PSMBIOS_FIRMWARE_INFORMATION;
|
|
|
|
C_ASSERT(sizeof(SMBIOS_FIRMWARE_INFORMATION) == 0x1A);
|
|
|
|
#define SMBIOS_FIRMWARE_FLAG_RESERVED_0 0x0000000000000001UL
|
|
#define SMBIOS_FIRMWARE_FLAG_RESERVED_1 0x0000000000000002UL
|
|
#define SMBIOS_FIRMWARE_FLAG_UNKNOWN 0x0000000000000004UL
|
|
#define SMBIOS_FIRMWARE_FLAG_NOT_SUPPORTED 0x0000000000000008UL
|
|
#define SMBIOS_FIRMWARE_FLAG_ISA_SUPPORTED 0x0000000000000010UL
|
|
#define SMBIOS_FIRMWARE_FLAG_MCA_SUPPORTED 0x0000000000000020UL
|
|
#define SMBIOS_FIRMWARE_FLAG_EISA_SUPPORTED 0x0000000000000040UL
|
|
#define SMBIOS_FIRMWARE_FLAG_PCI_SUPPORTED 0x0000000000000080UL
|
|
#define SMBIOS_FIRMWARE_FLAG_PCMCIA_SUPPORTED 0x0000000000000100UL
|
|
#define SMBIOS_FIRMWARE_FLAG_PNP_SUPPORTED 0x0000000000000200UL
|
|
#define SMBIOS_FIRMWARE_FLAG_APM_SUPPORTED 0x0000000000000400UL
|
|
#define SMBIOS_FIRMWARE_FLAG_UPGRADE_SUPPORTED 0x0000000000000800UL
|
|
#define SMBIOS_FIRMWARE_FLAG_SHADOWING_SUPPORTED 0x0000000000001000UL
|
|
#define SMBIOS_FIRMWARE_FLAG_VL_VESA_SUPPORTED 0x0000000000002000UL
|
|
#define SMBIOS_FIRMWARE_FLAG_ESCD_SUPPORTED 0x0000000000004000UL
|
|
#define SMBIOS_FIRMWARE_FLAG_BOOT_FROM_CD_SUPPORTED 0x0000000000008000UL
|
|
#define SMBIOS_FIRMWARE_FLAG_SELECTABLE_BOOT_SUPPORTED 0x0000000000010000UL
|
|
#define SMBIOS_FIRMWARE_FLAG_ROM_SOCKETED 0x0000000000020000UL
|
|
#define SMBIOS_FIRMWARE_FLAG_PCMCIA_BOOT_SUPPORTED 0x0000000000040000UL
|
|
#define SMBIOS_FIRMWARE_FLAG_EDD_SUPPORTED 0x0000000000080000UL
|
|
#define SMBIOS_FIRMWARE_FLAG_FLOPPY_NEC_9800_SUPPORTED 0x0000000000100000UL
|
|
#define SMBIOS_FIRMWARE_FLAG_FLOPPY_TOSHIBA_SUPPORTED 0x0000000000200000UL
|
|
#define SMBIOS_FIRMWARE_FLAG_FLOPPY_5_25_360KB_SUPPORTED 0x0000000000400000UL
|
|
#define SMBIOS_FIRMWARE_FLAG_FLOPPY_5_25_1_2_MB_SUPPORTED 0x0000000000800000UL
|
|
#define SMBIOS_FIRMWARE_FLAG_FLOPPY_3_5_720KB_SUPPORTED 0x0000000001000000UL
|
|
#define SMBIOS_FIRMWARE_FLAG_FLOPPY_3_5_2_88MB_SUPPORTED 0x0000000002000000UL
|
|
#define SMBIOS_FIRMWARE_FLAG_PRINT_SCREEN_SUPPORTED 0x0000000004000000UL
|
|
#define SMBIOS_FIRMWARE_FLAG_8042_KEYBOARD_SUPPORTED 0x0000000008000000UL
|
|
#define SMBIOS_FIRMWARE_FLAG_SERIAL_SUPPORTED 0x0000000010000000UL
|
|
#define SMBIOS_FIRMWARE_FLAG_PRINTER_SUPPORTED 0x0000000020000000UL
|
|
#define SMBIOS_FIRMWARE_FLAG_CGA_VIDEO_SUPPORTED 0x0000000040000000UL
|
|
#define SMBIOS_FIRMWARE_FLAG_NEC_PC_98 0x0000000080000000UL
|
|
#define SMBIOS_FIRMWARE_FLAG_PLATFORM_RESERVED 0x0000FFFF00000000UL
|
|
#define SMBIOS_FIRMWARE_FLAG_SYSTEM_RESERVED 0xFFFF000000000000UL
|
|
|
|
#define SMBIOS_FIRMWARE_FLAG_2_ACPI_SUPPORTED ((USHORT)0x0001)
|
|
#define SMBIOS_FIRMWARE_FLAG_2_USB_LEGACY_SUPPORTED ((USHORT)0x0002)
|
|
#define SMBIOS_FIRMWARE_FLAG_2_AGP_SUPPORTED ((USHORT)0x0004)
|
|
#define SMBIOS_FIRMWARE_FLAG_2_I20_BOOT_SUPPORTED ((USHORT)0x0008)
|
|
#define SMBIOS_FIRMWARE_FLAG_2_LS_120_BOOT_SUPPORTED ((USHORT)0x0010)
|
|
#define SMBIOS_FIRMWARE_FLAG_2_ZIP_BOOT_SUPPORTED ((USHORT)0x0020)
|
|
#define SMBIOS_FIRMWARE_FLAG_2_1394_BOOT_SUPPORTED ((USHORT)0x0040)
|
|
#define SMBIOS_FIRMWARE_FLAG_2_SMART_BATTERY_SUPPORTED ((USHORT)0x0080)
|
|
#define SMBIOS_FIRMWARE_FLAG_2_BIOS_BOOT_SUPPORTED ((USHORT)0x0100)
|
|
#define SMBIOS_FIRMWARE_FLAG_2_FN_KEY_NET_BOOT_SUPPORTED ((USHORT)0x0200)
|
|
#define SMBIOS_FIRMWARE_FLAG_2_CONTENT_DISTRIBUTION_SUPPORTED ((USHORT)0x0400)
|
|
#define SMBIOS_FIRMWARE_FLAG_2_UEFI_SUPPORTED ((USHORT)0x0800)
|
|
#define SMBIOS_FIRMWARE_FLAG_2_MANUFACTURING_MODE_ENABLED ((USHORT)0x1000)
|
|
#define SMBIOS_FIRMWARE_FLAG_2_RESERVED ((USHORT)0xE000)
|
|
|
|
#define SMBIOS_FIRMWARE_ROM_UNIT_MB 0
|
|
#define SMBIOS_FIRMWARE_ROM_UNIT_GB 1
|
|
#define SMBIOS_FIRMWARE_ROM_UNIT_RESERVED_1 2
|
|
#define SMBIOS_FIRMWARE_ROM_UNIT_RESERVED_2 3
|
|
|
|
//
|
|
// System Information (Type 1)
|
|
//
|
|
|
|
#define SMBIOS_SYSTEM_INFORMATION_TYPE ((UCHAR)1)
|
|
|
|
typedef struct _SMBIOS_SYSTEM_INFORMATION
|
|
{
|
|
SMBIOS_HEADER Header;
|
|
// 2.0+
|
|
UCHAR Manufacturer; // string
|
|
UCHAR ProductName; // string
|
|
UCHAR Version; // string
|
|
UCHAR SerialNumber; // string
|
|
// 2.1+
|
|
GUID UniqueID;
|
|
UCHAR WakeUpType; // SMBIOS_SYSTEM_WAKE_UP_TYPE
|
|
// 2.4+
|
|
UCHAR SKUNumber; // string
|
|
UCHAR Family; // string
|
|
} SMBIOS_SYSTEM_INFORMATION, *PSMBIOS_SYSTEM_INFORMATION;
|
|
|
|
C_ASSERT(sizeof(SMBIOS_SYSTEM_INFORMATION) == 0x1B);
|
|
|
|
#define SMBIOS_SYSTEM_WAKE_UP_TYPE_RESERVED ((UCHAR)0)
|
|
#define SMBIOS_SYSTEM_WAKE_UP_TYPE_OTHER ((UCHAR)1)
|
|
#define SMBIOS_SYSTEM_WAKE_UP_UNKNOWN ((UCHAR)2)
|
|
#define SMBIOS_SYSTEM_WAKE_UP_APM_TIMER ((UCHAR)3)
|
|
#define SMBIOS_SYSTEM_WAKE_UP_MODEM_RING ((UCHAR)4)
|
|
#define SMBIOS_SYSTEM_WAKE_UP_LAN_REMOTE ((UCHAR)5)
|
|
#define SMBIOS_SYSTEM_WAKE_UP_POWER_SWITCH ((UCHAR)6)
|
|
#define SMBIOS_SYSTEM_WAKE_UP_PCI_PME ((UCHAR)7)
|
|
#define SMBIOS_SYSTEM_WAKE_UP_AC_POWER_RESTORED ((UCHAR)8)
|
|
|
|
//
|
|
// Baseboard (or Module) Information (Type 2)
|
|
//
|
|
|
|
#define SMBIOS_BASEBOARD_INFORMATION_TYPE ((UCHAR)2)
|
|
|
|
typedef struct _SMBIOS_BASEBOARD_INFORMATION
|
|
{
|
|
SMBIOS_HEADER Header;
|
|
UCHAR Manufacturer; // string
|
|
UCHAR Product; // string
|
|
UCHAR Version; // string
|
|
UCHAR SerialNumber; // string
|
|
UCHAR AssetTag; // string
|
|
UCHAR Features; // SMBIOS_BASEBOARD_FEATURE_*
|
|
UCHAR Location; // string
|
|
USHORT ChassisHandle;
|
|
UCHAR BoardType; // SMBIOS_BASEBOARD_TYPE_*
|
|
UCHAR NumberOfHandles;
|
|
USHORT Handles[ANYSIZE_ARRAY]; // Contained object handles (processors, ports, memory, etc.)
|
|
} SMBIOS_BASEBOARD_INFORMATION, *PSMBIOS_BASEBOARD_INFORMATION;
|
|
|
|
C_ASSERT(sizeof(SMBIOS_BASEBOARD_INFORMATION) == 0x11);
|
|
|
|
#define SMBIOS_BASEBOARD_FEATURE_HOSTING_BOARD ((UCHAR)0x01)
|
|
#define SMBIOS_BASEBOARD_FEATURE_REQUIRES_DAUGHTER_BOARD ((UCHAR)0x02)
|
|
#define SMBIOS_BASEBOARD_FEATURE_REMOVABLE_BOARD ((UCHAR)0x04)
|
|
#define SMBIOS_BASEBOARD_FEATURE_REPLACEABLE_BOARD ((UCHAR)0x08)
|
|
#define SMBIOS_BASEBOARD_FEATURE_HOT_SWAP_BOARD ((UCHAR)0x10)
|
|
#define SMBIOS_BASEBOARD_FEATURE_RESERVED ((UCHAR)0xE0)
|
|
|
|
#define SMBIOS_BASEBOARD_TYPE_UNKNOWN ((UCHAR)1)
|
|
#define SMBIOS_BASEBOARD_TYPE_OTHER ((UCHAR)2)
|
|
#define SMBIOS_BASEBOARD_TYPE_SERVER_BLADE ((UCHAR)3)
|
|
#define SMBIOS_BASEBOARD_TYPE_CONNECTIVITY_SWITCH ((UCHAR)4)
|
|
#define SMBIOS_BASEBOARD_TYPE_SYSTEM_MANAGEMENT_MODULE ((UCHAR)5)
|
|
#define SMBIOS_BASEBOARD_TYPE_PROCESSOR_MODULE ((UCHAR)6)
|
|
#define SMBIOS_BASEBOARD_TYPE_IO_MODULE ((UCHAR)7)
|
|
#define SMBIOS_BASEBOARD_TYPE_MEMORY_MODULE ((UCHAR)8)
|
|
#define SMBIOS_BASEBOARD_TYPE_DAUGHTER_BOARD ((UCHAR)9)
|
|
#define SMBIOS_BASEBOARD_TYPE_MOTHERBOARD ((UCHAR)10)
|
|
#define SMBIOS_BASEBOARD_TYPE_PROCESSOR_MEMORY_MODULE ((UCHAR)11)
|
|
#define SMBIOS_BASEBOARD_TYPE_PROCESSOR_IO_MODULE ((UCHAR)12)
|
|
#define SMBIOS_BASEBOARD_TYPE_INTERCONNECT ((UCHAR)13)
|
|
|
|
//
|
|
// System Enclosure or Chassis (Type 3)
|
|
//
|
|
|
|
#define SMBIOS_CHASSIS_INFORMATION_TYPE ((UCHAR)3)
|
|
|
|
typedef struct _SMBIOS_CHASSIS_INFORMATION
|
|
{
|
|
SMBIOS_HEADER Header;
|
|
// 2.0+
|
|
UCHAR Manufacturer; // string
|
|
union
|
|
{
|
|
struct
|
|
{
|
|
UCHAR Type : 7; // SMBIOS_CHASSIS_TYPE_*
|
|
UCHAR Locked : 1;
|
|
};
|
|
|
|
UCHAR Value;
|
|
} Chassis;
|
|
|
|
UCHAR Version; // string
|
|
UCHAR SerialNumber; // string
|
|
UCHAR AssetTag; // string
|
|
// 2.1+
|
|
UCHAR BootUpState; // SMBIOS_CHASSIS_STATE_*
|
|
UCHAR PowerSupplyState; // SMBIOS_CHASSIS_STATE_*
|
|
UCHAR ThermalState; // SMBIOS_CHASSIS_STATE_*
|
|
UCHAR SecurityState; // SMBIOS_CHASSIS_SECURITY_STATE_*
|
|
// 2.3+
|
|
ULONG OEMDefined;
|
|
UCHAR Height;
|
|
UCHAR NumberOfPowerCords;
|
|
UCHAR ElementCount;
|
|
UCHAR ElementLength;
|
|
UCHAR Elements[ANYSIZE_ARRAY]; // ElementCount * ElementLength, SMBIOS_CHASSIS_CONTAINED_ELEMENT
|
|
// 2.7+
|
|
// SMBIOS_CHASSIS_INFORMATION_EX
|
|
} SMBIOS_CHASSIS_INFORMATION, *PSMBIOS_CHASSIS_INFORMATION;
|
|
|
|
C_ASSERT(sizeof(SMBIOS_CHASSIS_INFORMATION) == 0x16);
|
|
|
|
typedef struct _SMBIOS_CHASSIS_INFORMATION_EX
|
|
{
|
|
// 2.7+
|
|
UCHAR SKUNumber; // string
|
|
} SMBIOS_CHASSIS_INFORMATION_EX, *PSMBIOS_CHASSIS_INFORMATION_EX;
|
|
|
|
typedef struct _SMBIOS_CHASSIS_CONTAINED_ELEMENT
|
|
{
|
|
// 2.3+
|
|
union
|
|
{
|
|
struct
|
|
{
|
|
UCHAR Type : 7; // SMBIOS_*_INFORMATION_TYPE or SM_BIOS_BASEBOARD_TYPE_*
|
|
UCHAR Select : 1; // 1 = SMBIOS_*_INFORMATION_TYPE, 0 = SM_BIOS_BASEBOARD_TYPE_*
|
|
};
|
|
|
|
UCHAR Value;
|
|
} Type;
|
|
|
|
UCHAR ElementMinimum;
|
|
UCHAR ElementMaximum;
|
|
} SMBIOS_CHASSIS_CONTAINED_ELEMENT, *PSMBIOS_CHASSIS_CONTAINED_ELEMENT;
|
|
|
|
C_ASSERT(sizeof(SMBIOS_CHASSIS_CONTAINED_ELEMENT) == 0x3);
|
|
|
|
#define SMBIOS_CHASSIS_TYPE_OTHER 1
|
|
#define SMBIOS_CHASSIS_TYPE_UNKNOWN 2
|
|
#define SMBIOS_CHASSIS_TYPE_DESKTOP 3
|
|
#define SMBIOS_CHASSIS_TYPE_LOW_PROFILE_DESKTOP 4
|
|
#define SMBIOS_CHASSIS_TYPE_PIZZA_BOX 5
|
|
#define SMBIOS_CHASSIS_TYPE_MINI_TOWER 6
|
|
#define SMBIOS_CHASSIS_TYPE_TOWER 7
|
|
#define SMBIOS_CHASSIS_TYPE_PORTABLE 8
|
|
#define SMBIOS_CHASSIS_TYPE_LAPTOP 9
|
|
#define SMBIOS_CHASSIS_TYPE_NOTEBOOK 10
|
|
#define SMBIOS_CHASSIS_TYPE_HAND_HELD 11
|
|
#define SMBIOS_CHASSIS_TYPE_DOCKING_STATION 12
|
|
#define SMBIOS_CHASSIS_TYPE_ALL_IN_ONE 13
|
|
#define SMBIOS_CHASSIS_TYPE_SUB_NOTEBOOK 14
|
|
#define SMBIOS_CHASSIS_TYPE_SPACE_SAVING 15
|
|
#define SMBIOS_CHASSIS_TYPE_LUNCH_BOX 16
|
|
#define SMBIOS_CHASSIS_TYPE_MAIN_SERVER 17
|
|
#define SMBIOS_CHASSIS_TYPE_EXPANSION 18
|
|
#define SMBIOS_CHASSIS_TYPE_SUB 19
|
|
#define SMBIOS_CHASSIS_TYPE_BUS_EXPANSION 20
|
|
#define SMBIOS_CHASSIS_TYPE_PERIPHERAL 21
|
|
#define SMBIOS_CHASSIS_TYPE_RAID 22
|
|
#define SMBIOS_CHASSIS_TYPE_RACK_MOUNT 23
|
|
#define SMBIOS_CHASSIS_TYPE_SEALED_CASE_PC 24
|
|
#define SMBIOS_CHASSIS_TYPE_MULTI_SYSTEM 25
|
|
#define SMBIOS_CHASSIS_TYPE_COMPACT_PCI 26
|
|
#define SMBIOS_CHASSIS_TYPE_ADVANCED_TCA 27
|
|
#define SMBIOS_CHASSIS_TYPE_BLADE 28
|
|
#define SMBIOS_CHASSIS_TYPE_BLADE_ENCLOSURE 29
|
|
#define SMBIOS_CHASSIS_TYPE_TABLET 30
|
|
#define SMBIOS_CHASSIS_TYPE_CONVERTIBLE 31
|
|
#define SMBIOS_CHASSIS_TYPE_DETACHABLE 32
|
|
#define SMBIOS_CHASSIS_TYPE_IOT_GATEWAY 33
|
|
#define SMBIOS_CHASSIS_TYPE_EMBEDDED_PC 34
|
|
#define SMBIOS_CHASSIS_TYPE_MINI_PC 35
|
|
#define SMBIOS_CHASSIS_TYPE_STICK_PC 36
|
|
|
|
#define SMBIOS_CHASSIS_STATE_OTHER ((UCHAR)1)
|
|
#define SMBIOS_CHASSIS_STATE_UNKNOWN ((UCHAR)2)
|
|
#define SMBIOS_CHASSIS_STATE_SAFE ((UCHAR)3)
|
|
#define SMBIOS_CHASSIS_STATE_WARNING ((UCHAR)4)
|
|
#define SMBIOS_CHASSIS_STATE_CRITICAL ((UCHAR)5)
|
|
#define SMBIOS_CHASSIS_STATE_NON_RECOVERABLE ((UCHAR)6)
|
|
|
|
#define SMBIOS_CHASSIS_SECURITY_STATE_OTHER ((UCHAR)1)
|
|
#define SMBIOS_CHASSIS_SECURITY_STATE_UNKNOWN ((UCHAR)2)
|
|
#define SMBIOS_CHASSIS_SECURITY_STATE_NONE ((UCHAR)3)
|
|
#define SMBIOS_CHASSIS_SECURITY_STATE_LOCKED_OUT ((UCHAR)4)
|
|
#define SMBIOS_CHASSIS_SECURITY_STATE_ENABLED ((UCHAR)5)
|
|
|
|
//
|
|
// Processor Information (Type 4)
|
|
//
|
|
|
|
#define SMBIOS_PROCESSOR_INFORMATION_TYPE ((UCHAR)4)
|
|
|
|
typedef struct _SMBIOS_PROCESSOR_INFORMATION
|
|
{
|
|
SMBIOS_HEADER Header;
|
|
// 2.0+
|
|
UCHAR SocketDesignation; // string
|
|
UCHAR Type; // SMBIOS_PROCESSOR_TYPE_*
|
|
UCHAR Family; // SMBIOS_PROCESSOR_FAMILY_*
|
|
UCHAR Manufacturer; // string
|
|
ULONGLONG Identifier;
|
|
UCHAR Version; // string
|
|
|
|
union
|
|
{
|
|
struct
|
|
{
|
|
UCHAR Capable5000mV : 1; // 5V
|
|
UCHAR Capable3500mV : 1; // 3.3V
|
|
UCHAR Capable2900mV : 1; // 2.9V
|
|
UCHAR Reserved : 4;
|
|
UCHAR Mode : 1; // 0 = Legacy Mode
|
|
};
|
|
|
|
UCHAR Value;
|
|
} Voltage;
|
|
|
|
USHORT ExternalClock;
|
|
USHORT MaxSpeed;
|
|
USHORT CurrentSpeed;
|
|
|
|
union
|
|
{
|
|
struct
|
|
{
|
|
UCHAR Status : 3; // SMBIOS_PROCESSOR_STATUS_*
|
|
UCHAR Reserved : 3;
|
|
UCHAR Populated : 1;
|
|
UCHAR Reserved2 : 1;
|
|
};
|
|
|
|
UCHAR Value;
|
|
} Status;
|
|
|
|
UCHAR Upgrade; // SMBIOS_PROCESSOR_UPGRADE_*
|
|
// 2.1+
|
|
USHORT L1CacheHandle;
|
|
USHORT L2CacheHandle;
|
|
USHORT L3CacheHandle;
|
|
// 2.3+
|
|
UCHAR SerialNumber; // string
|
|
UCHAR AssetTag; // string
|
|
UCHAR PartNumber; // string
|
|
// 2.5+
|
|
UCHAR CoreCount;
|
|
UCHAR CoresEnabled;
|
|
UCHAR ThreadCount;
|
|
USHORT Characteristics; // SMBIOS_PROCESSOR_FLAG_*
|
|
// 2.6+
|
|
USHORT Family2; // SMBIOS_PROCESSOR_FAMILY_*
|
|
// 3.0+
|
|
USHORT CoreCount2;
|
|
USHORT CoresEnabled2;
|
|
USHORT ThreadCount2;
|
|
// 3.6+
|
|
USHORT ThreadsEnabled;
|
|
// 3.8+
|
|
UCHAR SocketType; // string
|
|
} SMBIOS_PROCESSOR_INFORMATION, *PSMBIOS_PROCESSOR_INFORMATION;
|
|
|
|
C_ASSERT(sizeof(SMBIOS_PROCESSOR_INFORMATION) == 0x33);
|
|
|
|
#define SMBIOS_PROCESSOR_TYPE_OTHER ((UCHAR)1)
|
|
#define SMBIOS_PROCESSOR_TYPE_UNKNOWN ((UCHAR)2)
|
|
#define SMBIOS_PROCESSOR_TYPE_CENTRAL ((UCHAR)3)
|
|
#define SMBIOS_PROCESSOR_TYPE_MATH ((UCHAR)4)
|
|
#define SMBIOS_PROCESSOR_TYPE_DSP ((UCHAR)5)
|
|
#define SMBIOS_PROCESSOR_TYPE_VIDEO ((UCHAR)6)
|
|
|
|
#define SMBIOS_PROCESSOR_FAMILY_OTHER 1
|
|
#define SMBIOS_PROCESSOR_FAMILY_UNKNOWN 2
|
|
#define SMBIOS_PROCESSOR_FAMILY_8086 3
|
|
#define SMBIOS_PROCESSOR_FAMILY_80286 4
|
|
#define SMBIOS_PROCESSOR_FAMILY_INTEL386_PROCESSOR 5
|
|
#define SMBIOS_PROCESSOR_FAMILY_INTEL486_PROCESSOR 6
|
|
#define SMBIOS_PROCESSOR_FAMILY_8087 7
|
|
#define SMBIOS_PROCESSOR_FAMILY_80287 8
|
|
#define SMBIOS_PROCESSOR_FAMILY_80387 9
|
|
#define SMBIOS_PROCESSOR_FAMILY_80487 10
|
|
#define SMBIOS_PROCESSOR_FAMILY_INTEL_PENTIUM_PROCESSOR 11
|
|
#define SMBIOS_PROCESSOR_FAMILY_PENTIUM_PRO_PROCESSOR 12
|
|
#define SMBIOS_PROCESSOR_FAMILY_PENTIUM_II_PROCESSOR 13
|
|
#define SMBIOS_PROCESSOR_FAMILY_PENTIUM_PROCESSOR_WITH_MMX_TECHNOLOGY 14
|
|
#define SMBIOS_PROCESSOR_FAMILY_INTEL_CELERON_PROCESSOR 15
|
|
#define SMBIOS_PROCESSOR_FAMILY_PENTIUM_II_XEON_PROCESSOR 16
|
|
#define SMBIOS_PROCESSOR_FAMILY_PENTIUM_III_PROCESSOR 17
|
|
#define SMBIOS_PROCESSOR_FAMILY_M1_FAMILY 18
|
|
#define SMBIOS_PROCESSOR_FAMILY_M2_FAMILY 19
|
|
#define SMBIOS_PROCESSOR_FAMILY_INTEL_CELERON_M_PROCESSOR 20
|
|
#define SMBIOS_PROCESSOR_FAMILY_INTEL_PENTIUM_4_HT_PROCESSOR 21
|
|
#define SMBIOS_PROCESSOR_FAMILY_INTEL_PROCESSOR 22
|
|
// 23 - Available for assignment
|
|
#define SMBIOS_PROCESSOR_FAMILY_AMD_DURON_PROCESSOR_FAMILY 24
|
|
#define SMBIOS_PROCESSOR_FAMILY_K5_FAMILY 25
|
|
#define SMBIOS_PROCESSOR_FAMILY_K6_FAMILY 26
|
|
#define SMBIOS_PROCESSOR_FAMILY_K6_2 27
|
|
#define SMBIOS_PROCESSOR_FAMILY_K6_3 28
|
|
#define SMBIOS_PROCESSOR_FAMILY_AMD_ATHLON_PROCESSOR_FAMILY 29
|
|
#define SMBIOS_PROCESSOR_FAMILY_AMD29000_FAMILY 30
|
|
#define SMBIOS_PROCESSOR_FAMILY_K6_2_PLUS 31
|
|
#define SMBIOS_PROCESSOR_FAMILY_POWER_PC_FAMILY 32
|
|
#define SMBIOS_PROCESSOR_FAMILY_POWER_PC_601 33
|
|
#define SMBIOS_PROCESSOR_FAMILY_POWER_PC_603 34
|
|
#define SMBIOS_PROCESSOR_FAMILY_POWER_PC_603_PLUS 35
|
|
#define SMBIOS_PROCESSOR_FAMILY_POWER_PC_604 36
|
|
#define SMBIOS_PROCESSOR_FAMILY_POWER_PC_620 37
|
|
#define SMBIOS_PROCESSOR_FAMILY_POWER_PC_X704 38
|
|
#define SMBIOS_PROCESSOR_FAMILY_POWER_PC_750 39
|
|
#define SMBIOS_PROCESSOR_FAMILY_INTEL_CORE_DUO_PROCESSOR 40
|
|
#define SMBIOS_PROCESSOR_FAMILY_INTEL_CORE_DUO_MOBILE_PROCESSOR 41
|
|
#define SMBIOS_PROCESSOR_FAMILY_INTEL_CORE_SOLO_MOBILE_PROCESSOR 42
|
|
#define SMBIOS_PROCESSOR_FAMILY_INTEL_ATOM_PROCESSOR 43
|
|
#define SMBIOS_PROCESSOR_FAMILY_INTEL_CORE_M_PROCESSOR 44
|
|
#define SMBIOS_PROCESSOR_FAMILY_INTEL_CORE_M3_PROCESSOR 45
|
|
#define SMBIOS_PROCESSOR_FAMILY_INTEL_CORE_M5_PROCESSOR 46
|
|
#define SMBIOS_PROCESSOR_FAMILY_INTEL_CORE_M7_PROCESSOR 47
|
|
#define SMBIOS_PROCESSOR_FAMILY_ALPHA_FAMILY 48
|
|
#define SMBIOS_PROCESSOR_FAMILY_ALPHA_21064 49
|
|
#define SMBIOS_PROCESSOR_FAMILY_ALPHA_21066 50
|
|
#define SMBIOS_PROCESSOR_FAMILY_ALPHA_21164 51
|
|
#define SMBIOS_PROCESSOR_FAMILY_ALPHA_21164PC 52
|
|
#define SMBIOS_PROCESSOR_FAMILY_ALPHA_21164A 53
|
|
#define SMBIOS_PROCESSOR_FAMILY_ALPHA_21264 54
|
|
#define SMBIOS_PROCESSOR_FAMILY_ALPHA_21364 55
|
|
#define SMBIOS_PROCESSOR_FAMILY_AMD_TURION_II_ULTRA_DUAL_CORE_MOBILE_M_PROCESSOR_FAMILY 56
|
|
#define SMBIOS_PROCESSOR_FAMILY_AMD_TURION_II_DUAL_CORE_MOBILE_M_PROCESSOR_FAMILY 57
|
|
#define SMBIOS_PROCESSOR_FAMILY_AMD_ATHLON_II_DUAL_CORE_M_PROCESSOR_FAMILY 58
|
|
#define SMBIOS_PROCESSOR_FAMILY_AMD_OPTERON_6100_SERIES_PROCESSOR 59
|
|
#define SMBIOS_PROCESSOR_FAMILY_AMD_OPTERON_4100_SERIES_PROCESSOR 60
|
|
#define SMBIOS_PROCESSOR_FAMILY_AMD_OPTERON_6200_SERIES_PROCESSOR 61
|
|
#define SMBIOS_PROCESSOR_FAMILY_AMD_OPTERON_4200_SERIES_PROCESSOR 62
|
|
#define SMBIOS_PROCESSOR_FAMILY_AMD_FX_SERIES_PROCESSOR 63
|
|
#define SMBIOS_PROCESSOR_FAMILY_MIPS_FAMILY 64
|
|
#define SMBIOS_PROCESSOR_FAMILY_MIPS_R4000 65
|
|
#define SMBIOS_PROCESSOR_FAMILY_MIPS_R4200 66
|
|
#define SMBIOS_PROCESSOR_FAMILY_MIPS_R4400 67
|
|
#define SMBIOS_PROCESSOR_FAMILY_MIPS_R4600 68
|
|
#define SMBIOS_PROCESSOR_FAMILY_MIPS_R10000 69
|
|
#define SMBIOS_PROCESSOR_FAMILY_AMD_C_SERIES_PROCESSOR 70
|
|
#define SMBIOS_PROCESSOR_FAMILY_AMD_E_SERIES_PROCESSOR 71
|
|
#define SMBIOS_PROCESSOR_FAMILY_AMD_A_SERIES_PROCESSOR 72
|
|
#define SMBIOS_PROCESSOR_FAMILY_AMD_G_SERIES_PROCESSOR 73
|
|
#define SMBIOS_PROCESSOR_FAMILY_AMD_Z_SERIES_PROCESSOR 74
|
|
#define SMBIOS_PROCESSOR_FAMILY_AMD_R_SERIES_PROCESSOR 75
|
|
#define SMBIOS_PROCESSOR_FAMILY_AMD_OPTERON_4300_SERIES_PROCESSOR 76
|
|
#define SMBIOS_PROCESSOR_FAMILY_AMD_OPTERON_6300_SERIES_PROCESSOR 77
|
|
#define SMBIOS_PROCESSOR_FAMILY_AMD_OPTERON_3300_SERIES_PROCESSOR 78
|
|
#define SMBIOS_PROCESSOR_FAMILY_AMD_FIREPRO_SERIES_PROCESSOR 79
|
|
#define SMBIOS_PROCESSOR_FAMILY_SPARC_FAMILY 80
|
|
#define SMBIOS_PROCESSOR_FAMILY_SUPERSPARC 81
|
|
#define SMBIOS_PROCESSOR_FAMILY_MICROSPARC_II 82
|
|
#define SMBIOS_PROCESSOR_FAMILY_MICROSPARC_IIep 83
|
|
#define SMBIOS_PROCESSOR_FAMILY_ULTRASPARC 84
|
|
#define SMBIOS_PROCESSOR_FAMILY_ULTRASPARC_II 85
|
|
#define SMBIOS_PROCESSOR_FAMILY_ULTRASPARC_Iii 86
|
|
#define SMBIOS_PROCESSOR_FAMILY_ULTRASPARC_III 87
|
|
#define SMBIOS_PROCESSOR_FAMILY_ULTRASPARC_IIIi 88
|
|
// 89-95 - Available for assignment
|
|
#define SMBIOS_PROCESSOR_FAMILY_68040_FAMILY 96
|
|
#define SMBIOS_PROCESSOR_FAMILY_68XXX 97
|
|
#define SMBIOS_PROCESSOR_FAMILY_68000 98
|
|
#define SMBIOS_PROCESSOR_FAMILY_68010 99
|
|
#define SMBIOS_PROCESSOR_FAMILY_68020 100
|
|
#define SMBIOS_PROCESSOR_FAMILY_68030 101
|
|
#define SMBIOS_PROCESSOR_FAMILY_AMD_ATHLON_X4_QUAD_CORE_PROCESSOR_FAMILY 102
|
|
#define SMBIOS_PROCESSOR_FAMILY_AMD_OPTERON_X1000_SERIES_PROCESSOR 103
|
|
#define SMBIOS_PROCESSOR_FAMILY_AMD_OPTERON_X2000_SERIES_APU 104
|
|
#define SMBIOS_PROCESSOR_FAMILY_AMD_OPTERON_A_SERIES_PROCESSOR 105
|
|
#define SMBIOS_PROCESSOR_FAMILY_AMD_OPTERON_X3000_SERIES_APU 106
|
|
#define SMBIOS_PROCESSOR_FAMILY_AMD_ZEN_PROCESSOR_FAMILY 107
|
|
// 108-111 - Available for assignment
|
|
#define SMBIOS_PROCESSOR_FAMILY_HOBBIT_FAMILY 112
|
|
// 113-119 - Available for assignment
|
|
#define SMBIOS_PROCESSOR_FAMILY_CRUSOE_TM5000_FAMILY 120
|
|
#define SMBIOS_PROCESSOR_FAMILY_CRUSOE_TM3000_FAMILY 121
|
|
#define SMBIOS_PROCESSOR_FAMILY_EFFICEON_TM8000_FAMILY 122
|
|
// 123-127 - Available for assignment
|
|
#define SMBIOS_PROCESSOR_FAMILY_WEITEK 128
|
|
// 129 - Available for assignment
|
|
#define SMBIOS_PROCESSOR_FAMILY_ITANIUM_PROCESSOR 130
|
|
#define SMBIOS_PROCESSOR_FAMILY_AMD_ATHLON_64_PROCESSOR_FAMILY 131
|
|
#define SMBIOS_PROCESSOR_FAMILY_AMD_OPTERON_PROCESSOR_FAMILY 132
|
|
#define SMBIOS_PROCESSOR_FAMILY_AMD_SEMPRON_PROCESSOR_FAMILY 133
|
|
#define SMBIOS_PROCESSOR_FAMILY_AMD_TURION_64_MOBILE_TECHNOLOGY 134
|
|
#define SMBIOS_PROCESSOR_FAMILY_DUAL_CORE_AMD_OPTERON_PROCESSOR_FAMILY 135
|
|
#define SMBIOS_PROCESSOR_FAMILY_AMD_ATHLON_64_X2_DUAL_CORE_PROCESSOR_FAMILY 136
|
|
#define SMBIOS_PROCESSOR_FAMILY_AMD_TURION_64_X2_MOBILE_TECHNOLOGY 137
|
|
#define SMBIOS_PROCESSOR_FAMILY_QUAD_CORE_AMD_OPTERON_PROCESSOR_FAMILY 138
|
|
#define SMBIOS_PROCESSOR_FAMILY_THIRD_GENERATION_AMD_OPTERON_PROCESSOR_FAMILY 139
|
|
#define SMBIOS_PROCESSOR_FAMILY_AMD_PHENOM_FX_QUAD_CORE_PROCESSOR_FAMILY 140
|
|
#define SMBIOS_PROCESSOR_FAMILY_AMD_PHENOM_X4_QUAD_CORE_PROCESSOR_FAMILY 141
|
|
#define SMBIOS_PROCESSOR_FAMILY_AMD_PHENOM_X2_DUAL_CORE_PROCESSOR_FAMILY 142
|
|
#define SMBIOS_PROCESSOR_FAMILY_AMD_ATHLON_X2_DUAL_CORE_PROCESSOR_FAMILY 143
|
|
#define SMBIOS_PROCESSOR_FAMILY_PA_RISC_FAMILY 144
|
|
#define SMBIOS_PROCESSOR_FAMILY_PA_RISC_8500 145
|
|
#define SMBIOS_PROCESSOR_FAMILY_PA_RISC_8000 146
|
|
#define SMBIOS_PROCESSOR_FAMILY_PA_RISC_7300LC 147
|
|
#define SMBIOS_PROCESSOR_FAMILY_PA_RISC_7200 148
|
|
#define SMBIOS_PROCESSOR_FAMILY_PA_RISC_7100LC 149
|
|
#define SMBIOS_PROCESSOR_FAMILY_PA_RISC_7100 150
|
|
// 151-159 - Available for assignment
|
|
#define SMBIOS_PROCESSOR_FAMILY_V30_FAMILY 160
|
|
#define SMBIOS_PROCESSOR_FAMILY_QUAD_CORE_INTEL_XEON_PROCESSOR_3200_SERIES 161
|
|
#define SMBIOS_PROCESSOR_FAMILY_DUAL_CORE_INTEL_XEON_PROCESSOR_3000_SERIES 162
|
|
#define SMBIOS_PROCESSOR_FAMILY_QUAD_CORE_INTEL_XEON_PROCESSOR_5300_SERIES 163
|
|
#define SMBIOS_PROCESSOR_FAMILY_DUAL_CORE_INTEL_XEON_PROCESSOR_5100_SERIES 164
|
|
#define SMBIOS_PROCESSOR_FAMILY_DUAL_CORE_INTEL_XEON_PROCESSOR_5000_SERIES 165
|
|
#define SMBIOS_PROCESSOR_FAMILY_DUAL_CORE_INTEL_XEON_PROCESSOR_LV 166
|
|
#define SMBIOS_PROCESSOR_FAMILY_DUAL_CORE_INTEL_XEON_PROCESSOR_ULV 167
|
|
#define SMBIOS_PROCESSOR_FAMILY_DUAL_CORE_INTEL_XEON_PROCESSOR_7100_SERIES 168
|
|
#define SMBIOS_PROCESSOR_FAMILY_QUAD_CORE_INTEL_XEON_PROCESSOR_5400_SERIES 169
|
|
#define SMBIOS_PROCESSOR_FAMILY_QUAD_CORE_INTEL_XEON_PROCESSOR 170
|
|
#define SMBIOS_PROCESSOR_FAMILY_DUAL_CORE_INTEL_XEON_PROCESSOR_5200_SERIES 171
|
|
#define SMBIOS_PROCESSOR_FAMILY_DUAL_CORE_INTEL_XEON_PROCESSOR_7200_SERIES 172
|
|
#define SMBIOS_PROCESSOR_FAMILY_QUAD_CORE_INTEL_XEON_PROCESSOR_7300_SERIES 173
|
|
#define SMBIOS_PROCESSOR_FAMILY_QUAD_CORE_INTEL_XEON_PROCESSOR_7400_SERIES 174
|
|
#define SMBIOS_PROCESSOR_FAMILY_MULTI_CORE_INTEL_XEON_PROCESSOR_7400_SERIES 175
|
|
#define SMBIOS_PROCESSOR_FAMILY_PENTIUM_III_XEON_PROCESSOR 176
|
|
#define SMBIOS_PROCESSOR_FAMILY_PENTIUM_III_PROCESSOR_WITH_INTEL_SPEEDSTEP_TECHNOLOGY 177
|
|
#define SMBIOS_PROCESSOR_FAMILY_PENTIUM_4_PROCESSOR 178
|
|
#define SMBIOS_PROCESSOR_FAMILY_INTEL_XEON_PROCESSOR 179
|
|
#define SMBIOS_PROCESSOR_FAMILY_AS400_FAMILY 180
|
|
#define SMBIOS_PROCESSOR_FAMILY_INTEL_XEON_PROCESSOR_MP 181
|
|
#define SMBIOS_PROCESSOR_FAMILY_AMD_ATHLON_XP_PROCESSOR_FAMILY 182
|
|
#define SMBIOS_PROCESSOR_FAMILY_AMD_ATHLON_MP_PROCESSOR_FAMILY 183
|
|
#define SMBIOS_PROCESSOR_FAMILY_INTEL_ITANIUM_2_PROCESSOR 184
|
|
#define SMBIOS_PROCESSOR_FAMILY_INTEL_PENTIUM_M_PROCESSOR 185
|
|
#define SMBIOS_PROCESSOR_FAMILY_INTEL_CELERON_D_PROCESSOR 186
|
|
#define SMBIOS_PROCESSOR_FAMILY_INTEL_PENTIUM_D_PROCESSOR 187
|
|
#define SMBIOS_PROCESSOR_FAMILY_INTEL_PENTIUM_PROCESSOR_EXTREME_EDITION 188
|
|
#define SMBIOS_PROCESSOR_FAMILY_INTEL_CORE_SOLO_PROCESSOR 189
|
|
#define SMBIOS_PROCESSOR_FAMILY_RESERVED 190
|
|
#define SMBIOS_PROCESSOR_FAMILY_INTEL_CORE_2_DUO_PROCESSOR 191
|
|
#define SMBIOS_PROCESSOR_FAMILY_INTEL_CORE_2_SOLO_PROCESSOR 192
|
|
#define SMBIOS_PROCESSOR_FAMILY_INTEL_CORE_2_EXTREME_PROCESSOR 193
|
|
#define SMBIOS_PROCESSOR_FAMILY_INTEL_CORE_2_QUAD_PROCESSOR 194
|
|
#define SMBIOS_PROCESSOR_FAMILY_INTEL_CORE_2_EXTREME_MOBILE_PROCESSOR 195
|
|
#define SMBIOS_PROCESSOR_FAMILY_INTEL_CORE_2_DUO_MOBILE_PROCESSOR 196
|
|
#define SMBIOS_PROCESSOR_FAMILY_INTEL_CORE_2_SOLO_MOBILE_PROCESSOR 197
|
|
#define SMBIOS_PROCESSOR_FAMILY_INTEL_CORE_I7_PROCESSOR 198
|
|
#define SMBIOS_PROCESSOR_FAMILY_DUAL_CORE_INTEL_CELERO_PROCESSOR 199
|
|
#define SMBIOS_PROCESSOR_FAMILY_IBM390_FAMILY 200
|
|
#define SMBIOS_PROCESSOR_FAMILY_G4 201
|
|
#define SMBIOS_PROCESSOR_FAMILY_G5 202
|
|
#define SMBIOS_PROCESSOR_FAMILY_ESA_390_G6 203
|
|
#define SMBIOS_PROCESSOR_FAMILY_Z_ARCHITECTURE_BASE 204
|
|
#define SMBIOS_PROCESSOR_FAMILY_INTEL_CORE_I5_PROCESSOR 205
|
|
#define SMBIOS_PROCESSOR_FAMILY_INTEL_CORE_I3_PROCESSOR 206
|
|
#define SMBIOS_PROCESSOR_FAMILY_INTEL_CORE_I9_PROCESSOR 207
|
|
#define SMBIOS_PROCESSOR_FAMILY_INTEL_XEON_D_PROCESSOR_FAMILY 208
|
|
// 209 - Available for assignment
|
|
#define SMBIOS_PROCESSOR_FAMILY_VIA_C7_M_PROCESSOR_FAMILY 210
|
|
#define SMBIOS_PROCESSOR_FAMILY_VIA_C7_D_PROCESSOR_FAMILY 211
|
|
#define SMBIOS_PROCESSOR_FAMILY_VIA_C7_PROCESSOR_FAMILY 212
|
|
#define SMBIOS_PROCESSOR_FAMILY_VIA_EDEN_PROCESSOR_FAMILY 213
|
|
#define SMBIOS_PROCESSOR_FAMILY_MULTI_CORE_INTEL_XEON_PROCESSOR 214
|
|
#define SMBIOS_PROCESSOR_FAMILY_DUAL_CORE_INTEL_XEON_PROCESSOR_3XXX_SERIES 215
|
|
#define SMBIOS_PROCESSOR_FAMILY_QUAD_CORE_INTEL_XEON_PROCESSOR_3XXX_SERIES 216
|
|
#define SMBIOS_PROCESSOR_FAMILY_VIA_NANO_PROCESSOR_FAMILY 217
|
|
#define SMBIOS_PROCESSOR_FAMILY_DUAL_CORE_INTEL_XEON_PROCESSOR_5XXX_SERIES 218
|
|
#define SMBIOS_PROCESSOR_FAMILY_QUAD_CORE_INTEL_XEON_PROCESSOR_5XXX_SERIES 219
|
|
// 220 - Available for assignment
|
|
#define SMBIOS_PROCESSOR_FAMILY_DUAL_CORE_INTEL_XEON_PROCESSOR_7XXX_SERIES 221
|
|
#define SMBIOS_PROCESSOR_FAMILY_QUAD_CORE_INTEL_XEON_PROCESSOR_7XXX_SERIES 222
|
|
#define SMBIOS_PROCESSOR_FAMILY_MULTI_CORE_INTEL_XEON_PROCESSOR_7XXX_SERIES 223
|
|
#define SMBIOS_PROCESSOR_FAMILY_MULTI_CORE_INTEL_XEON_PROCESSOR_3400_SERIES 224
|
|
// 225-227 - Available for assignment
|
|
#define SMBIOS_PROCESSOR_FAMILY_AMD_OPTERON_3000_SERIES_PROCESSOR 228
|
|
#define SMBIOS_PROCESSOR_FAMILY_AMD_SEMPRON_II_PROCESSOR 229
|
|
#define SMBIOS_PROCESSOR_FAMILY_EMBEDDED_AMD_OPTERON_QUAD_CORE_PROCESSOR_FAMILY 230
|
|
#define SMBIOS_PROCESSOR_FAMILY_AMD_PHENOM_TRIPLE_CORE_PROCESSOR_FAMILY 231
|
|
#define SMBIOS_PROCESSOR_FAMILY_AMD_TURION_ULTRA_DUAL_CORE_MOBILE_PROCESSOR_FAMILY 232
|
|
#define SMBIOS_PROCESSOR_FAMILY_AMD_TURION_DUAL_CORE_MOBILE_PROCESSOR_FAMILY 233
|
|
#define SMBIOS_PROCESSOR_FAMILY_AMD_ATHLON_DUAL_CORE_PROCESSOR_FAMILY 234
|
|
#define SMBIOS_PROCESSOR_FAMILY_AMD_SEMPRON_SI_PROCESSOR_FAMILY 235
|
|
#define SMBIOS_PROCESSOR_FAMILY_AMD_PHENOM_II_PROCESSOR_FAMILY 236
|
|
#define SMBIOS_PROCESSOR_FAMILY_AMD_ATHLON_II_PROCESSOR_FAMILY 237
|
|
#define SMBIOS_PROCESSOR_FAMILY_SIX_CORE_AMD_OPTERON_PROCESSOR_FAMILY 238
|
|
#define SMBIOS_PROCESSOR_FAMILY_AMD_SEMPRON_M_PROCESSOR_FAMILY 239
|
|
// 240-249 - Available for assignment
|
|
#define SMBIOS_PROCESSOR_FAMILY_I860 250
|
|
#define SMBIOS_PROCESSOR_FAMILY_I960 251
|
|
// 252-253 - Available for assignment
|
|
#define SMBIOS_PROCESSOR_FAMILY_USE_2ND_FIELD 254
|
|
// 255 RESERVED
|
|
// 256-511 - Available for assignment, except for:
|
|
#define SMBIOS_PROCESSOR_FAMILY_ARMV7 256
|
|
#define SMBIOS_PROCESSOR_FAMILY_ARMV8 257
|
|
#define SMBIOS_PROCESSOR_FAMILY_ARMV9 258
|
|
// 259 - Reserved for future use by ARM
|
|
#define SMBIOS_PROCESSOR_FAMILY_SH_3 260
|
|
#define SMBIOS_PROCESSOR_FAMILY_SH_4 261
|
|
#define SMBIOS_PROCESSOR_FAMILY_ARM 280
|
|
#define SMBIOS_PROCESSOR_FAMILY_STRONGARM 281
|
|
#define SMBIOS_PROCESSOR_FAMILY_6X86 300
|
|
#define SMBIOS_PROCESSOR_FAMILY_MEDIAGX 301
|
|
#define SMBIOS_PROCESSOR_FAMILY_MII 302
|
|
#define SMBIOS_PROCESSOR_FAMILY_WINCHIP 320
|
|
#define SMBIOS_PROCESSOR_FAMILY_DSP 350
|
|
#define SMBIOS_PROCESSOR_FAMILY_VIDEO_PROCESSOR 500
|
|
// 512-767 - Available for assignment, except for:
|
|
#define SMBIOS_PROCESSOR_FAMILY_RISC_V_RV32 512
|
|
#define SMBIOS_PROCESSOR_FAMILY_RISC_V_RV64 513
|
|
#define SMBIOS_PROCESSOR_FAMILY_RISC_V_RV128 514
|
|
#define SMBIOS_PROCESSOR_FAMILY_LOONGARCH 600
|
|
#define SMBIOS_PROCESSOR_FAMILY_LOONGSON_1_PROCESSOR_FAMILY 601
|
|
#define SMBIOS_PROCESSOR_FAMILY_LOONGSON_2_PROCESSOR_FAMILY 602
|
|
#define SMBIOS_PROCESSOR_FAMILY_LOONGSON_3_PROCESSOR_FAMILY 603
|
|
#define SMBIOS_PROCESSOR_FAMILY_LOONGSON_2K_PROCESSOR_FAMILY 604
|
|
#define SMBIOS_PROCESSOR_FAMILY_LOONGSON_3A_PROCESSOR_FAMILY 605
|
|
#define SMBIOS_PROCESSOR_FAMILY_LOONGSON_3B_PROCESSOR_FAMILY 606
|
|
#define SMBIOS_PROCESSOR_FAMILY_LOONGSON_3C_PROCESSOR_FAMILY 607
|
|
#define SMBIOS_PROCESSOR_FAMILY_LOONGSON_3D_PROCESSOR_FAMILY 608
|
|
#define SMBIOS_PROCESSOR_FAMILY_LOONGSON_3E_PROCESSOR_FAMILY 609
|
|
#define SMBIOS_PROCESSOR_FAMILY_DUAL_CORE_LOONGSON_2K_PROCESSOR_2XXX_SERIES 610
|
|
#define SMBIOS_PROCESSOR_FAMILY_QUAD_CORE_LOONGSON_3A_PROCESSOR_5XXX_SERIES 620
|
|
#define SMBIOS_PROCESSOR_FAMILY_MULTI_CORE_LOONGSON_3A_PROCESSOR_5XXX_SERIES 621
|
|
#define SMBIOS_PROCESSOR_FAMILY_QUAD_CORE_LOONGSON_3B_PROCESSOR_5XXX_SERIES 622
|
|
#define SMBIOS_PROCESSOR_FAMILY_MULTI_CORE_LOONGSON_3B_PROCESSOR_5XXX_SERIES 623
|
|
#define SMBIOS_PROCESSOR_FAMILY_MULTI_CORE_LOONGSON_3C_PROCESSOR_5XXX_SERIES 624
|
|
#define SMBIOS_PROCESSOR_FAMILY_MULTI_CORE_LOONGSON_3D_PROCESSOR_5XXX_SERIES 625
|
|
// 768-1023 - Available for assignment, except for:
|
|
#define SMBIOS_PROCESSOR_FAMILY_INTEL_CORE_3 768
|
|
#define SMBIOS_PROCESSOR_FAMILY_INTEL_CORE_5 769
|
|
#define SMBIOS_PROCESSOR_FAMILY_INTEL_CORE_7 770
|
|
#define SMBIOS_PROCESSOR_FAMILY_INTEL_CORE_9 771
|
|
#define SMBIOS_PROCESSOR_FAMILY_INTEL_CORE_ULTRA_3 772
|
|
#define SMBIOS_PROCESSOR_FAMILY_INTEL_CORE_ULTRA_5 773
|
|
#define SMBIOS_PROCESSOR_FAMILY_INTEL_CORE_ULTRA_7 774
|
|
#define SMBIOS_PROCESSOR_FAMILY_INTEL_CORE_ULTRA_9 775
|
|
// 1024-65533 - Available for assignment
|
|
// 65534-65535 - RESERVED
|
|
|
|
#define SMBIOS_PROCESSOR_STATUS_UNKNOWN 0
|
|
#define SMBIOS_PROCESSOR_STATUS_ENABLED 1
|
|
#define SMBIOS_PROCESSOR_STATUS_DISABLED_BY_USER 2
|
|
#define SMBIOS_PROCESSOR_STATUS_DISABLED_BY_FIRMWARE 3
|
|
#define SMBIOS_PROCESSOR_STATUS_IDLE 4
|
|
#define SMBIOS_PROCESSOR_STATUS_RESERVED_5 5
|
|
#define SMBIOS_PROCESSOR_STATUS_RESERVED_6 6
|
|
#define SMBIOS_PROCESSOR_STATUS_OTHER 7
|
|
|
|
#define SMBIOS_PROCESSOR_UPGRADE_OTHER 1
|
|
#define SMBIOS_PROCESSOR_UPGRADE_UNKNOWN 2
|
|
#define SMBIOS_PROCESSOR_UPGRADE_DAUGHTER_BOARD 3
|
|
#define SMBIOS_PROCESSOR_UPGRADE_ZIF_SOCKET 4
|
|
#define SMBIOS_PROCESSOR_UPGRADE_REPLACEABLE_PIGGY_BACK 5
|
|
#define SMBIOS_PROCESSOR_UPGRADE_NONE 6
|
|
#define SMBIOS_PROCESSOR_UPGRADE_LIF_SOCKET 7
|
|
#define SMBIOS_PROCESSOR_UPGRADE_SLOT_1 8
|
|
#define SMBIOS_PROCESSOR_UPGRADE_SLOT_2 9
|
|
#define SMBIOS_PROCESSOR_UPGRADE_370_PIN_SOCKET 10
|
|
#define SMBIOS_PROCESSOR_UPGRADE_SLOT_A 11
|
|
#define SMBIOS_PROCESSOR_UPGRADE_SLOT_M 12
|
|
#define SMBIOS_PROCESSOR_UPGRADE_SOCKET_423 13
|
|
#define SMBIOS_PROCESSOR_UPGRADE_SOCKET_A 14 // (Socket 462)
|
|
#define SMBIOS_PROCESSOR_UPGRADE_SOCKET_478 15
|
|
#define SMBIOS_PROCESSOR_UPGRADE_SOCKET_754 16
|
|
#define SMBIOS_PROCESSOR_UPGRADE_SOCKET_940 17
|
|
#define SMBIOS_PROCESSOR_UPGRADE_SOCKET_939 18
|
|
#define SMBIOS_PROCESSOR_UPGRADE_SOCKET_MPGA604 19
|
|
#define SMBIOS_PROCESSOR_UPGRADE_SOCKET_LGA771 20
|
|
#define SMBIOS_PROCESSOR_UPGRADE_SOCKET_LGA775 21
|
|
#define SMBIOS_PROCESSOR_UPGRADE_SOCKET_S1 22
|
|
#define SMBIOS_PROCESSOR_UPGRADE_SOCKET_AM2 23
|
|
#define SMBIOS_PROCESSOR_UPGRADE_SOCKET_F 24 // (1207)
|
|
#define SMBIOS_PROCESSOR_UPGRADE_SOCKET_LGA1366 25
|
|
#define SMBIOS_PROCESSOR_UPGRADE_SOCKET_G34 26
|
|
#define SMBIOS_PROCESSOR_UPGRADE_SOCKET_AM3 27
|
|
#define SMBIOS_PROCESSOR_UPGRADE_SOCKET_C32 28
|
|
#define SMBIOS_PROCESSOR_UPGRADE_SOCKET_LGA1156 29
|
|
#define SMBIOS_PROCESSOR_UPGRADE_SOCKET_LGA1567 30
|
|
#define SMBIOS_PROCESSOR_UPGRADE_SOCKET_PGA988A 31
|
|
#define SMBIOS_PROCESSOR_UPGRADE_SOCKET_BGA1288 32
|
|
#define SMBIOS_PROCESSOR_UPGRADE_SOCKET_RPGA988B 33
|
|
#define SMBIOS_PROCESSOR_UPGRADE_SOCKET_BGA1023 34
|
|
#define SMBIOS_PROCESSOR_UPGRADE_SOCKET_BGA1224 35
|
|
#define SMBIOS_PROCESSOR_UPGRADE_SOCKET_LGA1155 36
|
|
#define SMBIOS_PROCESSOR_UPGRADE_SOCKET_LGA1356 37
|
|
#define SMBIOS_PROCESSOR_UPGRADE_SOCKET_LGA2011 38
|
|
#define SMBIOS_PROCESSOR_UPGRADE_SOCKET_FS1 39
|
|
#define SMBIOS_PROCESSOR_UPGRADE_SOCKET_FS2 40
|
|
#define SMBIOS_PROCESSOR_UPGRADE_SOCKET_FM1 41
|
|
#define SMBIOS_PROCESSOR_UPGRADE_SOCKET_FM2 42
|
|
#define SMBIOS_PROCESSOR_UPGRADE_SOCKET_LGA2011_3 43
|
|
#define SMBIOS_PROCESSOR_UPGRADE_SOCKET_LGA1356_3 44
|
|
#define SMBIOS_PROCESSOR_UPGRADE_SOCKET_LGA1150 45
|
|
#define SMBIOS_PROCESSOR_UPGRADE_SOCKET_BGA1168 46
|
|
#define SMBIOS_PROCESSOR_UPGRADE_SOCKET_BGA1234 47
|
|
#define SMBIOS_PROCESSOR_UPGRADE_SOCKET_BGA1364 48
|
|
#define SMBIOS_PROCESSOR_UPGRADE_SOCKET_AM4 49
|
|
#define SMBIOS_PROCESSOR_UPGRADE_SOCKET_LGA1151 50
|
|
#define SMBIOS_PROCESSOR_UPGRADE_SOCKET_BGA1356 51
|
|
#define SMBIOS_PROCESSOR_UPGRADE_SOCKET_BGA1440 52
|
|
#define SMBIOS_PROCESSOR_UPGRADE_SOCKET_BGA1515 53
|
|
#define SMBIOS_PROCESSOR_UPGRADE_SOCKET_LGA3647_1 54
|
|
#define SMBIOS_PROCESSOR_UPGRADE_SOCKET_SP3 55
|
|
#define SMBIOS_PROCESSOR_UPGRADE_SOCKET_SP3R2 56
|
|
#define SMBIOS_PROCESSOR_UPGRADE_SOCKET_LGA2066 57
|
|
#define SMBIOS_PROCESSOR_UPGRADE_SOCKET_BGA1392 58
|
|
#define SMBIOS_PROCESSOR_UPGRADE_SOCKET_BGA1510 59
|
|
#define SMBIOS_PROCESSOR_UPGRADE_SOCKET_BGA1528 60
|
|
#define SMBIOS_PROCESSOR_UPGRADE_SOCKET_LGA4189 61
|
|
#define SMBIOS_PROCESSOR_UPGRADE_SOCKET_LGA1200 62
|
|
#define SMBIOS_PROCESSOR_UPGRADE_SOCKET_LGA4677 63
|
|
#define SMBIOS_PROCESSOR_UPGRADE_SOCKET_LGA1700 64
|
|
#define SMBIOS_PROCESSOR_UPGRADE_SOCKET_BGA1744 65
|
|
#define SMBIOS_PROCESSOR_UPGRADE_SOCKET_BGA1781 66
|
|
#define SMBIOS_PROCESSOR_UPGRADE_SOCKET_BGA1211 67
|
|
#define SMBIOS_PROCESSOR_UPGRADE_SOCKET_BGA2422 68
|
|
#define SMBIOS_PROCESSOR_UPGRADE_SOCKET_LGA1211 69
|
|
#define SMBIOS_PROCESSOR_UPGRADE_SOCKET_LGA2422 70
|
|
#define SMBIOS_PROCESSOR_UPGRADE_SOCKET_LGA5773 71
|
|
#define SMBIOS_PROCESSOR_UPGRADE_SOCKET_BGA5773 72
|
|
#define SMBIOS_PROCESSOR_UPGRADE_SOCKET_AM5 73
|
|
#define SMBIOS_PROCESSOR_UPGRADE_SOCKET_SP5 74
|
|
#define SMBIOS_PROCESSOR_UPGRADE_SOCKET_SP6 75
|
|
#define SMBIOS_PROCESSOR_UPGRADE_SOCKET_BGA883 76
|
|
#define SMBIOS_PROCESSOR_UPGRADE_SOCKET_BGA1190 77
|
|
#define SMBIOS_PROCESSOR_UPGRADE_SOCKET_BGA4129 78
|
|
#define SMBIOS_PROCESSOR_UPGRADE_SOCKET_LGA4710 79
|
|
#define SMBIOS_PROCESSOR_UPGRADE_SOCKET_LGA7529 80
|
|
#define SMBIOS_PROCESSOR_UPGRADE_SOCKET_BGA1964 81
|
|
#define SMBIOS_PROCESSOR_UPGRADE_SOCKET_BGA1792 82
|
|
#define SMBIOS_PROCESSOR_UPGRADE_SOCKET_BGA2049 83
|
|
#define SMBIOS_PROCESSOR_UPGRADE_SOCKET_BGA2551 84
|
|
#define SMBIOS_PROCESSOR_UPGRADE_SOCKET_LGA1851 85
|
|
#define SMBIOS_PROCESSOR_UPGRADE_SOCKET_BGA2114 86
|
|
#define SMBIOS_PROCESSOR_UPGRADE_SOCKET_BGA2833 87
|
|
#define SMBIOS_PROCESSOR_UPGRADE_INVALID 255
|
|
|
|
#define SMBIOS_PROCESSOR_FLAG_RESERVED ((USHORT)0x0001)
|
|
#define SMBIOS_PROCESSOR_FLAG_UNKNOWN ((USHORT)0x0002)
|
|
#define SMBIOS_PROCESSOR_FLAG_64_BIT_CAPABLE ((USHORT)0x0004)
|
|
#define SMBIOS_PROCESSOR_FLAG_MILT_CORE ((USHORT)0x0008)
|
|
#define SMBIOS_PROCESSOR_FLAG_HARDWARE_THREADED ((USHORT)0x0010)
|
|
#define SMBIOS_PROCESSOR_FLAG_EXECUTE_PROTECTION ((USHORT)0x0020)
|
|
#define SMBIOS_PROCESSOR_FLAG_ENHANCED_VIRTUALIZATION ((USHORT)0x0040)
|
|
#define SMBIOS_PROCESSOR_FLAG_POWER_PERFORMANCE_CONTROL ((USHORT)0x0080)
|
|
#define SMBIOS_PROCESSOR_FLAG_128_BIT_CAPABLE ((USHORT)0x0100)
|
|
#define SMBIOS_PROCESSOR_FLAG_ARM64_SOC ((USHORT)0x0200)
|
|
#define SMBIOS_PROCESSOR_FLAG_RESERVED_2 ((USHORT)0xFC00)
|
|
|
|
//
|
|
// Memory Controller Information (Type 5, Obsolete)
|
|
//
|
|
|
|
#define SMBIOS_MEMORY_CONTROLLER_INFORMATION_TYPE ((UCHAR)5)
|
|
|
|
typedef struct _SMBIOS_MEMORY_CONTROLLER_INFORMATION
|
|
{
|
|
SMBIOS_HEADER Header;
|
|
// 2.0+
|
|
UCHAR ErrorDetectionMethod; // SMBIOS_MEMORY_CONTROLLER_ERROR_DETECTION_*
|
|
UCHAR ErrorCorrectionCapabilities; // SMBIOS_MEMORY_CONTROLLER_ERROR_CORRECTION_*
|
|
UCHAR SupportedInterleave; // SMBIOS_MEMORY_CONTROLLER_INTERLEAVE_*
|
|
UCHAR CurrentInterleave; // SMBIOS_MEMORY_CONTROLLER_INTERLEAVE_*
|
|
UCHAR MaximumModuleSize; // 2^n
|
|
USHORT SupportedSpeeds; // SMBIOS_MEMORY_CONTROLLER_SPEEDS_*
|
|
USHORT SupportedTypes; // SMBIOS_MEMORY_MODULE_TYPE_*
|
|
|
|
union
|
|
{
|
|
struct
|
|
{
|
|
UCHAR Requires5000mV : 1; // 5V
|
|
UCHAR Requires3500mV : 1; // 3.3V
|
|
UCHAR Requires2900mV : 1; // 2.9V
|
|
UCHAR Reserved : 5;
|
|
};
|
|
|
|
UCHAR Value;
|
|
} ModuleVoltage;
|
|
|
|
UCHAR NumberOfSlots;
|
|
USHORT SlotHandles[ANYSIZE_ARRAY];
|
|
// 2.1+
|
|
// SMBIOS_MEMORY_CONTROLLER_INFORMATION_EX
|
|
} SMBIOS_MEMORY_CONTROLLER_INFORMATION, *PSMBIOS_MEMORY_CONTROLLER_INFORMATION;
|
|
|
|
C_ASSERT(sizeof(SMBIOS_MEMORY_CONTROLLER_INFORMATION) == 0x11);
|
|
|
|
typedef struct _SMBIOS_MEMORY_CONTROLLER_INFORMATION_EX
|
|
{
|
|
UCHAR EnabledErrorCorrectionCapabilities; // SMBIOS_MEMORY_CONTROLLER_ERROR_CORRECTION_*
|
|
} SMBIOS_MEMORY_CONTROLLER_INFORMATION_EX, *PSMBIOS_MEMORY_CONTROLLER_INFORMATION_EX;
|
|
|
|
#define SMBIOS_MEMORY_CONTROLLER_ERROR_DETECTION_OTHER ((UCHAR)1)
|
|
#define SMBIOS_MEMORY_CONTROLLER_ERROR_DETECTION_UNKNOWN ((UCHAR)2)
|
|
#define SMBIOS_MEMORY_CONTROLLER_ERROR_DETECTION_NONE ((UCHAR)3)
|
|
#define SMBIOS_MEMORY_CONTROLLER_ERROR_DETECTION_8_BIT_PARITY ((UCHAR)4)
|
|
#define SMBIOS_MEMORY_CONTROLLER_ERROR_DETECTION_32_BIT_ECC ((UCHAR)5)
|
|
#define SMBIOS_MEMORY_CONTROLLER_ERROR_DETECTION_64_BIT_ECC ((UCHAR)6)
|
|
#define SMBIOS_MEMORY_CONTROLLER_ERROR_DETECTION_128_BIT_ECC ((UCHAR)7)
|
|
#define SMBIOS_MEMORY_CONTROLLER_ERROR_DETECTION_CRC ((UCHAR)8)
|
|
|
|
#define SMBIOS_MEMORY_CONTROLLER_ERROR_CORRECTION_OTHER ((UCHAR)0x01)
|
|
#define SMBIOS_MEMORY_CONTROLLER_ERROR_CORRECTION_UNKNOWN ((UCHAR)0x02)
|
|
#define SMBIOS_MEMORY_CONTROLLER_ERROR_CORRECTION_SINGLE_BIT ((UCHAR)0x04)
|
|
#define SMBIOS_MEMORY_CONTROLLER_ERROR_CORRECTION_DOUBLE_BIT ((UCHAR)0x10)
|
|
#define SMBIOS_MEMORY_CONTROLLER_ERROR_CORRECTION_SCRUBBING ((UCHAR)0x20)
|
|
|
|
#define SMBIOS_MEMORY_CONTROLLER_INTERLEAVE_OTHER ((UCHAR)1)
|
|
#define SMBIOS_MEMORY_CONTROLLER_INTERLEAVE_UNKNOWN ((UCHAR)2)
|
|
#define SMBIOS_MEMORY_CONTROLLER_INTERLEAVE_ONE_WAY ((UCHAR)3)
|
|
#define SMBIOS_MEMORY_CONTROLLER_INTERLEAVE_TWO_WAY ((UCHAR)4)
|
|
#define SMBIOS_MEMORY_CONTROLLER_INTERLEAVE_FOUR_WAY ((UCHAR)5)
|
|
#define SMBIOS_MEMORY_CONTROLLER_INTERLEAVE_EIGHT_WAY ((UCHAR)6)
|
|
#define SMBIOS_MEMORY_CONTROLLER_INTERLEAVE_SIXTEEN_WAY ((UCHAR)7)
|
|
|
|
#define SMBIOS_MEMORY_CONTROLLER_SPEEDS_OTHER ((USHORT)0x0001)
|
|
#define SMBIOS_MEMORY_CONTROLLER_SPEEDS_UNKNOWN ((USHORT)0x0002)
|
|
#define SMBIOS_MEMORY_CONTROLLER_SPEEDS_70NS ((USHORT)0x0004)
|
|
#define SMBIOS_MEMORY_CONTROLLER_SPEEDS_60NS ((USHORT)0x0008)
|
|
#define SMBIOS_MEMORY_CONTROLLER_SPEEDS_50NS ((USHORT)0x0010)
|
|
#define SMBIOS_MEMORY_CONTROLLER_SPEEDS_RESERVED ((USHORT)0xFFE0)
|
|
|
|
//
|
|
// Memory Module Information (Type 6, Obsolete)
|
|
//
|
|
|
|
#define SMBIOS_MEMORY_MODULE_INFORMATION_TYPE ((UCHAR)6)
|
|
|
|
typedef union _SMBIOS_MEMORY_MODULE_SIZE
|
|
{
|
|
struct
|
|
{
|
|
UCHAR Size : 7;
|
|
UCHAR DoubleBank : 1;
|
|
};
|
|
|
|
UCHAR Value; // SMBIOS_MEMORY_MODULE_SIZE_VALUE_*
|
|
} SMBIOS_MEMORY_MODULE_SIZE, *PSMBIOS_MEMORY_MODULE_SIZE;
|
|
|
|
#define SMBIOS_MEMORY_MODULE_SIZE_VALUE_NOT_DETERMINABLE ((UCHAR)0x7D)
|
|
#define SMBIOS_MEMORY_MODULE_SIZE_VALUE_NOT_ENABLED ((UCHAR)0x7E)
|
|
#define SMBIOS_MEMORY_MODULE_SIZE_VALUE_NOT_INSTALLED ((UCHAR)0x7F)
|
|
|
|
typedef struct _SMBIOS_MEMORY_MODULE_INFORMATION
|
|
{
|
|
SMBIOS_HEADER Header;
|
|
UCHAR SocketDesignation; // string
|
|
UCHAR BankConnections;
|
|
UCHAR CurrentSpeed;
|
|
USHORT MemoryType; // SMBIOS_MEMORY_MODULE_TYPE_*
|
|
SMBIOS_MEMORY_MODULE_SIZE InstalledSize;
|
|
SMBIOS_MEMORY_MODULE_SIZE EnabledSize;
|
|
|
|
union
|
|
{
|
|
struct
|
|
{
|
|
UCHAR UncorrectableErrors : 1;
|
|
UCHAR CorrectableErrors : 1;
|
|
UCHAR SeeEventLog : 1;
|
|
UCHAR Reserved : 5;
|
|
};
|
|
|
|
UCHAR Value;
|
|
} ErrorStatus;
|
|
} SMBIOS_MEMORY_MODULE_INFORMATION, *PSMBIOS_MEMORY_MODULE_INFORMATION;
|
|
|
|
C_ASSERT(sizeof(SMBIOS_MEMORY_MODULE_INFORMATION) == 0xC);
|
|
|
|
#define SMBIOS_MEMORY_MODULE_TYPE_OTHER ((USHORT)0x0001)
|
|
#define SMBIOS_MEMORY_MODULE_TYPE_UNKNOWN ((USHORT)0x0002)
|
|
#define SMBIOS_MEMORY_MODULE_TYPE_STANDARD ((USHORT)0x0004)
|
|
#define SMBIOS_MEMORY_MODULE_TYPE_FAST_PAGE_MODE ((USHORT)0x0008)
|
|
#define SMBIOS_MEMORY_MODULE_TYPE_EDO ((USHORT)0x0010)
|
|
#define SMBIOS_MEMORY_MODULE_TYPE_PARITY ((USHORT)0x0020)
|
|
#define SMBIOS_MEMORY_MODULE_TYPE_ECC ((USHORT)0x0040)
|
|
#define SMBIOS_MEMORY_MODULE_TYPE_SIMM ((USHORT)0x0080)
|
|
#define SMBIOS_MEMORY_MODULE_TYPE_DIMM ((USHORT)0x0100)
|
|
#define SMBIOS_MEMORY_MODULE_TYPE_BURST_EDO ((USHORT)0x0200)
|
|
#define SMBIOS_MEMORY_MODULE_TYPE_SDRAM ((USHORT)0x0400)
|
|
#define SMBIOS_MEMORY_MODULE_TYPE_RESERVED ((USHORT)0xF800)
|
|
|
|
//
|
|
// Cache Information (Type 7)
|
|
//
|
|
|
|
#define SMBIOS_CACHE_INFORMATION_TYPE ((UCHAR)7)
|
|
|
|
typedef union _SMBIOS_CACHE_USHORT
|
|
{
|
|
struct
|
|
{
|
|
USHORT Size : 15;
|
|
USHORT Granularity : 1; // 0 = 1K, 1 = 64K
|
|
};
|
|
|
|
USHORT Value;
|
|
} SMBIOS_CACHE_USHORT;
|
|
|
|
typedef union _SMBIOS_CACHE_ULONG
|
|
{
|
|
struct
|
|
{
|
|
ULONG Size : 31;
|
|
ULONG Granularity : 1; // 0 = 1K, 1 = 64K
|
|
};
|
|
|
|
ULONG Value;
|
|
} SMBIOS_CACHE_ULONG;
|
|
|
|
typedef struct _SMBIOS_CACHE_INFORMATION
|
|
{
|
|
SMBIOS_HEADER Header;
|
|
// 2.0+
|
|
UCHAR SocketDesignation; // string
|
|
|
|
union
|
|
{
|
|
struct
|
|
{
|
|
USHORT Level : 3; // L1 through L8
|
|
USHORT Socketed : 1;
|
|
USHORT Reserved : 1;
|
|
USHORT Location : 2; // SMBIOS_CACHE_LOCATION_*
|
|
USHORT Enabled : 1;
|
|
USHORT Mode : 2; // SMBIOS_CACHE_MODE_*
|
|
USHORT Reserved2 : 6;
|
|
};
|
|
|
|
USHORT Value;
|
|
} Configuration;
|
|
|
|
SMBIOS_CACHE_USHORT MaximumSize;
|
|
SMBIOS_CACHE_USHORT InstalledSize;
|
|
USHORT SupportedSRAM; // SMBIOS_CACHE_SUPPORTED_SRAM_*
|
|
USHORT CurrentSRAM; // SMBIOS_CACHE_SUPPORTED_SRAM_*
|
|
// 2.1+
|
|
UCHAR Speed;
|
|
UCHAR ErrorCorrectionType; // SMBIOS_CACHE_ERROR_CORRECTION_*
|
|
UCHAR SystemCacheType; // SMBIOS_CACHE_SYSTEM_CACHE_*
|
|
UCHAR Associativity; // SMBIOS_CACHE_ASSOCIATIVITY_*
|
|
// 3.1+
|
|
SMBIOS_CACHE_ULONG MaximumSize2;
|
|
SMBIOS_CACHE_ULONG InstalledSize2;
|
|
} SMBIOS_CACHE_INFORMATION, *PSMBIOS_CACHE_INFORMATION;
|
|
|
|
C_ASSERT(sizeof(SMBIOS_CACHE_INFORMATION) == 0x1B);
|
|
|
|
#define SMBIOS_CACHE_LOCATION_INTERNAL ((USHORT)0)
|
|
#define SMBIOS_CACHE_LOCATION_EXTERNAL ((USHORT)1)
|
|
#define SMBIOS_CACHE_LOCATION_RESERVED ((USHORT)2)
|
|
#define SMBIOS_CACHE_LOCATION_UNKNOWN ((USHORT)3)
|
|
|
|
#define SMBIOS_CACHE_MODE_WRITE_THROUGH ((USHORT)0)
|
|
#define SMBIOS_CACHE_MODE_WRITE_BACK ((USHORT)1)
|
|
#define SMBIOS_CACHE_MODE_VARIES_WITH_MEMORY_ADDRESS ((USHORT)2)
|
|
#define SMBIOS_CACHE_MODE_UNKNOWN ((USHORT)3)
|
|
|
|
#define SMBIOS_CACHE_SUPPORTED_SRAM_OTHER ((USHORT)0x0001)
|
|
#define SMBIOS_CACHE_SUPPORTED_SRAM_UNKNOWN ((USHORT)0x0002)
|
|
#define SMBIOS_CACHE_SUPPORTED_SRAM_NON_BURST ((USHORT)0x0004)
|
|
#define SMBIOS_CACHE_SUPPORTED_SRAM_BURST ((USHORT)0x0008)
|
|
#define SMBIOS_CACHE_SUPPORTED_SRAM_PIPELINE_BURST ((USHORT)0x0010)
|
|
#define SMBIOS_CACHE_SUPPORTED_SRAM_SYNCHRONOUS ((USHORT)0x0020)
|
|
#define SMBIOS_CACHE_SUPPORTED_SRAM_ASYNCHRONOUS ((USHORT)0x0040)
|
|
#define SMBIOS_CACHE_SUPPORTED_SRAM_RESERVED ((USHORT)0xFF80)
|
|
|
|
#define SMBIOS_CACHE_ERROR_CORRECTION_OTHER ((UCHAR)1)
|
|
#define SMBIOS_CACHE_ERROR_CORRECTION_UNKNOWN ((UCHAR)2)
|
|
#define SMBIOS_CACHE_ERROR_CORRECTION_NONE ((UCHAR)3)
|
|
#define SMBIOS_CACHE_ERROR_CORRECTION_PARITY ((UCHAR)4)
|
|
#define SMBIOS_CACHE_ERROR_CORRECTION_SINGLE_BIT_ECC ((UCHAR)5)
|
|
#define SMBIOS_CACHE_ERROR_CORRECTION_MULTI_BIT_ECC ((UCHAR)6)
|
|
|
|
#define SMBIOS_CACHE_SYSTEM_CACHE_OTHER ((UCHAR)1)
|
|
#define SMBIOS_CACHE_SYSTEM_CACHE_UNKNOWN ((UCHAR)2)
|
|
#define SMBIOS_CACHE_SYSTEM_CACHE_INSTRUCTION ((UCHAR)3)
|
|
#define SMBIOS_CACHE_SYSTEM_CACHE_DATA ((UCHAR)4)
|
|
#define SMBIOS_CACHE_SYSTEM_CACHE_UNIFIED ((UCHAR)5)
|
|
|
|
#define SMBIOS_CACHE_ASSOCIATIVITY_OTHER ((UCHAR)1)
|
|
#define SMBIOS_CACHE_ASSOCIATIVITY_UNKNOWN ((UCHAR)2)
|
|
#define SMBIOS_CACHE_ASSOCIATIVITY_DIRECT_MAPPED ((UCHAR)3)
|
|
#define SMBIOS_CACHE_ASSOCIATIVITY_2_WAY ((UCHAR)4)
|
|
#define SMBIOS_CACHE_ASSOCIATIVITY_4_WAY ((UCHAR)5)
|
|
#define SMBIOS_CACHE_ASSOCIATIVITY_FULL ((UCHAR)6)
|
|
#define SMBIOS_CACHE_ASSOCIATIVITY_8_WAY ((UCHAR)7)
|
|
#define SMBIOS_CACHE_ASSOCIATIVITY_16_WAY ((UCHAR)8)
|
|
#define SMBIOS_CACHE_ASSOCIATIVITY_12_WAY ((UCHAR)9)
|
|
#define SMBIOS_CACHE_ASSOCIATIVITY_24_WAY ((UCHAR)10)
|
|
#define SMBIOS_CACHE_ASSOCIATIVITY_32_WAY ((UCHAR)11)
|
|
#define SMBIOS_CACHE_ASSOCIATIVITY_48_WAY ((UCHAR)12)
|
|
#define SMBIOS_CACHE_ASSOCIATIVITY_64_WAY ((UCHAR)13)
|
|
#define SMBIOS_CACHE_ASSOCIATIVITY_20_WAY ((UCHAR)14)
|
|
|
|
//
|
|
// Port Connector Information (Type 8)
|
|
//
|
|
|
|
#define SMBIOS_PORT_CONNECTOR_INFORMATION_TYPE ((UCHAR)8)
|
|
|
|
typedef struct _SMBIOS_PORT_CONNECTOR_INFORMATION
|
|
{
|
|
SMBIOS_HEADER Header;
|
|
UCHAR InternalReferenceDesignator; // string
|
|
UCHAR InternalConnectorType; // SMBIOS_PORT_CONNECTOR_TYPE_*
|
|
UCHAR ExternalReferenceDesignator; // string
|
|
UCHAR ExternalConnectorType; // SMBIOS_PORT_CONNECTOR_TYPE_*
|
|
UCHAR PortType; // SMBIOS_PORT_CONNECTOR_PORT_TYPE_*
|
|
} SMBIOS_PORT_CONNECTOR_INFORMATION, *PSMBIOS_PORT_CONNECTOR_INFORMATION;
|
|
|
|
C_ASSERT(sizeof(SMBIOS_PORT_CONNECTOR_INFORMATION) == 0x9);
|
|
|
|
#define SMBIOS_PORT_CONNECTOR_TYPE_NONE ((UCHAR)0)
|
|
#define SMBIOS_PORT_CONNECTOR_TYPE_CENTRONICS ((UCHAR)1)
|
|
#define SMBIOS_PORT_CONNECTOR_TYPE_MINI_CENTRONICS ((UCHAR)2)
|
|
#define SMBIOS_PORT_CONNECTOR_TYPE_PROPRIETARY ((UCHAR)3)
|
|
#define SMBIOS_PORT_CONNECTOR_TYPE_DB_25_PIN_MALE ((UCHAR)4)
|
|
#define SMBIOS_PORT_CONNECTOR_TYPE_DB_25_PIN_FEMALE ((UCHAR)5)
|
|
#define SMBIOS_PORT_CONNECTOR_TYPE_DB_15_PIN_MALE ((UCHAR)6)
|
|
#define SMBIOS_PORT_CONNECTOR_TYPE_DB_15_PIN_FEMALE ((UCHAR)7)
|
|
#define SMBIOS_PORT_CONNECTOR_TYPE_DB_9_PIN_MALE ((UCHAR)8)
|
|
#define SMBIOS_PORT_CONNECTOR_TYPE_DB_9_PIN_FEMALE ((UCHAR)9)
|
|
#define SMBIOS_PORT_CONNECTOR_TYPE_RJ_11 ((UCHAR)10)
|
|
#define SMBIOS_PORT_CONNECTOR_TYPE_RJ_54 ((UCHAR)11)
|
|
#define SMBIOS_PORT_CONNECTOR_TYPE_50_PIN_MINI_SCSI ((UCHAR)12)
|
|
#define SMBIOS_PORT_CONNECTOR_TYPE_MINI_DIN ((UCHAR)13)
|
|
#define SMBIOS_PORT_CONNECTOR_TYPE_MICRO_DIN ((UCHAR)14)
|
|
#define SMBIOS_PORT_CONNECTOR_TYPE_PS2 ((UCHAR)15)
|
|
#define SMBIOS_PORT_CONNECTOR_TYPE_INFRARED ((UCHAR)16)
|
|
#define SMBIOS_PORT_CONNECTOR_TYPE_HP_HIL ((UCHAR)17)
|
|
#define SMBIOS_PORT_CONNECTOR_TYPE_USB ((UCHAR)18)
|
|
#define SMBIOS_PORT_CONNECTOR_TYPE_SSA_SCSI ((UCHAR)19)
|
|
#define SMBIOS_PORT_CONNECTOR_TYPE_CIRCULAR_DIN_8_MALE ((UCHAR)20)
|
|
#define SMBIOS_PORT_CONNECTOR_TYPE_CIRCULAR_DIN_8_FEMALE ((UCHAR)21)
|
|
#define SMBIOS_PORT_CONNECTOR_TYPE_ON_BOARD_IDE ((UCHAR)22)
|
|
#define SMBIOS_PORT_CONNECTOR_TYPE_ON_BOARD_FLOPPY ((UCHAR)23)
|
|
#define SMBIOS_PORT_CONNECTOR_TYPE_9_PIN_DIAL_INLINE ((UCHAR)24)
|
|
#define SMBIOS_PORT_CONNECTOR_TYPE_25_PIN_DIAL_INLINE ((UCHAR)25)
|
|
#define SMBIOS_PORT_CONNECTOR_TYPE_50_PIN_DIAL_INLINE ((UCHAR)26)
|
|
#define SMBIOS_PORT_CONNECTOR_TYPE_68_PIN_DIAL_INLINE ((UCHAR)27)
|
|
#define SMBIOS_PORT_CONNECTOR_TYPE_ON_BOARD_INPUT_CD_ROM ((UCHAR)28)
|
|
#define SMBIOS_PORT_CONNECTOR_TYPE_MINI_CENTRONICS_TYPE_14 ((UCHAR)29)
|
|
#define SMBIOS_PORT_CONNECTOR_TYPE_MINI_CENTRONICS_TYPE_26 ((UCHAR)30)
|
|
#define SMBIOS_PORT_CONNECTOR_TYPE_MINI_JACK ((UCHAR)31)
|
|
#define SMBIOS_PORT_CONNECTOR_TYPE_BNC ((UCHAR)32)
|
|
#define SMBIOS_PORT_CONNECTOR_TYPE_1394 ((UCHAR)33)
|
|
#define SMBIOS_PORT_CONNECTOR_TYPE_SAS_SATA ((UCHAR)34)
|
|
#define SMBIOS_PORT_CONNECTOR_TYPE_USB_TYPE_C ((UCHAR)35)
|
|
#define SMBIOS_PORT_CONNECTOR_TYPE_PC_98 ((UCHAR)160)
|
|
#define SMBIOS_PORT_CONNECTOR_TYPE_PC_98_HIRESO ((UCHAR)161)
|
|
#define SMBIOS_PORT_CONNECTOR_TYPE_PC_H98 ((UCHAR)162)
|
|
#define SMBIOS_PORT_CONNECTOR_TYPE_PC_98_NOTE ((UCHAR)163)
|
|
#define SMBIOS_PORT_CONNECTOR_TYPE_PC_98_FULL ((UCHAR)164)
|
|
#define SMBIOS_PORT_CONNECTOR_TYPE_OTHER ((UCHAR)255)
|
|
|
|
#define SMBIOS_PORT_CONNECTOR_PORT_TYPE_NONE ((UCHAR)0)
|
|
#define SMBIOS_PORT_CONNECTOR_PORT_TYPE_PARALLEL_XT_AT ((UCHAR)1)
|
|
#define SMBIOS_PORT_CONNECTOR_PORT_TYPE_PARALLEL_PS2 ((UCHAR)2)
|
|
#define SMBIOS_PORT_CONNECTOR_PORT_TYPE_PARALLEL_ECP ((UCHAR)3)
|
|
#define SMBIOS_PORT_CONNECTOR_PORT_TYPE_PARALLEL_EPP ((UCHAR)4)
|
|
#define SMBIOS_PORT_CONNECTOR_PORT_TYPE_PARALLEL_ECP_EPP ((UCHAR)5)
|
|
#define SMBIOS_PORT_CONNECTOR_PORT_TYPE_SERIAL_XT_AT ((UCHAR)6)
|
|
#define SMBIOS_PORT_CONNECTOR_PORT_TYPE_SERIAL_16450 ((UCHAR)7)
|
|
#define SMBIOS_PORT_CONNECTOR_PORT_TYPE_SERIAL_16550 ((UCHAR)8)
|
|
#define SMBIOS_PORT_CONNECTOR_PORT_TYPE_SERIAL_16550A ((UCHAR)9)
|
|
#define SMBIOS_PORT_CONNECTOR_PORT_TYPE_SCSI ((UCHAR)10)
|
|
#define SMBIOS_PORT_CONNECTOR_PORT_TYPE_MIDI ((UCHAR)11)
|
|
#define SMBIOS_PORT_CONNECTOR_PORT_TYPE_JOY_STICK ((UCHAR)12)
|
|
#define SMBIOS_PORT_CONNECTOR_PORT_TYPE_KEYBOARD ((UCHAR)13)
|
|
#define SMBIOS_PORT_CONNECTOR_PORT_TYPE_MOUSE ((UCHAR)14)
|
|
#define SMBIOS_PORT_CONNECTOR_PORT_TYPE_SSA_SCSI ((UCHAR)15)
|
|
#define SMBIOS_PORT_CONNECTOR_PORT_TYPE_USB ((UCHAR)16)
|
|
#define SMBIOS_PORT_CONNECTOR_PORT_TYPE_FIRE_WIRE ((UCHAR)17)
|
|
#define SMBIOS_PORT_CONNECTOR_PORT_TYPE_PCMCIA_TYPE_I ((UCHAR)18)
|
|
#define SMBIOS_PORT_CONNECTOR_PORT_TYPE_PCMCIA_TYPE_II ((UCHAR)19)
|
|
#define SMBIOS_PORT_CONNECTOR_PORT_TYPE_PCMCIA_TYPE_III ((UCHAR)20)
|
|
#define SMBIOS_PORT_CONNECTOR_PORT_TYPE_CARD_BUS ((UCHAR)21)
|
|
#define SMBIOS_PORT_CONNECTOR_PORT_TYPE_ACCESS_BUS ((UCHAR)22)
|
|
#define SMBIOS_PORT_CONNECTOR_PORT_TYPE_SCSI_II ((UCHAR)23)
|
|
#define SMBIOS_PORT_CONNECTOR_PORT_TYPE_SCSI_WIDE ((UCHAR)24)
|
|
#define SMBIOS_PORT_CONNECTOR_PORT_TYPE_PC_98 ((UCHAR)25)
|
|
#define SMBIOS_PORT_CONNECTOR_PORT_TYPE_PC_98_HIRESO ((UCHAR)26)
|
|
#define SMBIOS_PORT_CONNECTOR_PORT_TYPE_PC_98H ((UCHAR)27)
|
|
#define SMBIOS_PORT_CONNECTOR_PORT_TYPE_VIDEO ((UCHAR)28)
|
|
#define SMBIOS_PORT_CONNECTOR_PORT_TYPE_AUDIO ((UCHAR)29)
|
|
#define SMBIOS_PORT_CONNECTOR_PORT_TYPE_MODEM ((UCHAR)30)
|
|
#define SMBIOS_PORT_CONNECTOR_PORT_TYPE_NETWORK ((UCHAR)31)
|
|
#define SMBIOS_PORT_CONNECTOR_PORT_TYPE_SATA ((UCHAR)32)
|
|
#define SMBIOS_PORT_CONNECTOR_PORT_TYPE_SAS ((UCHAR)33)
|
|
#define SMBIOS_PORT_CONNECTOR_PORT_TYPE_MFDP ((UCHAR)34)
|
|
#define SMBIOS_PORT_CONNECTOR_PORT_TYPE_THUNDERBOLT ((UCHAR)35)
|
|
#define SMBIOS_PORT_CONNECTOR_PORT_TYPE_8251 ((UCHAR)160)
|
|
#define SMBIOS_PORT_CONNECTOR_PORT_TYPE_8251_FIFO ((UCHAR)161)
|
|
#define SMBIOS_PORT_CONNECTOR_PORT_TYPE_8251_OTHER ((UCHAR)255)
|
|
|
|
//
|
|
// System Slots (Type 9)
|
|
//
|
|
|
|
#define SMBIOS_SYSTEM_SLOT_INFORMATION_TYPE ((UCHAR)9)
|
|
|
|
typedef struct _SMBIOS_SYSTEM_SLOT_INFORMATION
|
|
{
|
|
SMBIOS_HEADER Header;
|
|
// 2.0+
|
|
UCHAR SocketDesignation; // string
|
|
UCHAR Type; // SMBIOS_SYSTEM_SLOT_TYPE_*
|
|
UCHAR BusWidth; // SMBIOS_SYSTEM_SLOT_BUS_WIDTH_*
|
|
UCHAR CurrentUsage; // SMBIOS_SYSTEM_SLOT_USAGE_*
|
|
UCHAR Length; // SMBIOS_SYSTEM_SLOT_LENGTH_*
|
|
USHORT Identifier;
|
|
UCHAR Characteristics; // SMBIOS_SYSTEM_SLOT_FLAG_*
|
|
// 2.1+
|
|
UCHAR Characteristics2; // SMBIOS_SYSTEM_SLOT_FLAG_2_*
|
|
// 2.6+
|
|
USHORT SegmentGroup;
|
|
UCHAR BusNumber;
|
|
|
|
union
|
|
{
|
|
struct
|
|
{
|
|
UCHAR FunctionNumber : 3;
|
|
UCHAR DeviceNumber : 5;
|
|
};
|
|
|
|
UCHAR Value;
|
|
} DeviceFunctionNumber;
|
|
|
|
// 3.2+
|
|
UCHAR BusWidthBase;
|
|
UCHAR PeerGroupingCount;
|
|
UCHAR PeerGroups[ANYSIZE_ARRAY];
|
|
// 3.4+
|
|
// SMBIOS_SYSTEM_SLOT_INFORMATION_EX
|
|
} SMBIOS_SYSTEM_SLOT_INFORMATION, *PSMBIOS_SYSTEM_SLOT_INFORMATION;
|
|
|
|
C_ASSERT(sizeof(SMBIOS_SYSTEM_SLOT_INFORMATION) == 0x14);
|
|
|
|
typedef struct _SMBIOS_SYSTEM_SLOT_INFORMATION_EX
|
|
{
|
|
UCHAR Information;
|
|
UCHAR PhysicalWidth;
|
|
USHORT Pitch;
|
|
UCHAR Height; // SMBIOS_SYSTEM_SLOT_HEIGHT_*
|
|
} SMBIOS_SYSTEM_SLOT_INFORMATION_EX, *PSMBIOS_SYSTEM_SLOT_INFORMATION_EX;
|
|
|
|
#define SMBIOS_SYSTEM_SLOT_TYPE_OTHER ((UCHAR)1)
|
|
#define SMBIOS_SYSTEM_SLOT_TYPE_UNKNOWN ((UCHAR)2)
|
|
#define SMBIOS_SYSTEM_SLOT_TYPE_ISA ((UCHAR)3)
|
|
#define SMBIOS_SYSTEM_SLOT_TYPE_MCA ((UCHAR)4)
|
|
#define SMBIOS_SYSTEM_SLOT_TYPE_EISA ((UCHAR)5)
|
|
#define SMBIOS_SYSTEM_SLOT_TYPE_PCI ((UCHAR)6)
|
|
#define SMBIOS_SYSTEM_SLOT_TYPE_PCMCIA ((UCHAR)7)
|
|
#define SMBIOS_SYSTEM_SLOT_TYPE_VL_VESA ((UCHAR)8)
|
|
#define SMBIOS_SYSTEM_SLOT_TYPE_PROPRIETARY ((UCHAR)9)
|
|
#define SMBIOS_SYSTEM_SLOT_TYPE_PROCESSOR_CARD_SLOT ((UCHAR)10)
|
|
#define SMBIOS_SYSTEM_SLOT_TYPE_PROPRIETARY_MEMORY_CARD_SLOT ((UCHAR)11)
|
|
#define SMBIOS_SYSTEM_SLOT_TYPE_IO_RISER_CARD_SLOT ((UCHAR)12)
|
|
#define SMBIOS_SYSTEM_SLOT_TYPE_NUBUS ((UCHAR)13)
|
|
#define SMBIOS_SYSTEM_SLOT_TYPE_PCI_66MHZ_CAPABLE ((UCHAR)14)
|
|
#define SMBIOS_SYSTEM_SLOT_TYPE_AGP ((UCHAR)15)
|
|
#define SMBIOS_SYSTEM_SLOT_TYPE_AGP_2X ((UCHAR)16)
|
|
#define SMBIOS_SYSTEM_SLOT_TYPE_AGP_4X ((UCHAR)17)
|
|
#define SMBIOS_SYSTEM_SLOT_TYPE_PCI_X ((UCHAR)18)
|
|
#define SMBIOS_SYSTEM_SLOT_TYPE_AGP_8X ((UCHAR)19)
|
|
#define SMBIOS_SYSTEM_SLOT_TYPE_M_2_SOCKET_1_DP_MECHANICAL_KEY_A ((UCHAR)20)
|
|
#define SMBIOS_SYSTEM_SLOT_TYPE_M_2_SOCKET_1_SD_MECHANICAL_KEY_E ((UCHAR)21)
|
|
#define SMBIOS_SYSTEM_SLOT_TYPE_M_2_SOCKET_2_MECHANICAL_KEY_B ((UCHAR)22)
|
|
#define SMBIOS_SYSTEM_SLOT_TYPE_M_2_SOCKET_3_MECHANICAL_KEY_M ((UCHAR)23)
|
|
#define SMBIOS_SYSTEM_SLOT_TYPE_MXM_TYPE_I ((UCHAR)24)
|
|
#define SMBIOS_SYSTEM_SLOT_TYPE_MXM_TYPE_II ((UCHAR)25)
|
|
#define SMBIOS_SYSTEM_SLOT_TYPE_MXM_TYPE_III_STANDARD_CONNECTOR ((UCHAR)26)
|
|
#define SMBIOS_SYSTEM_SLOT_TYPE_MXM_TYPE_III_HE_CONNECTOR ((UCHAR)27)
|
|
#define SMBIOS_SYSTEM_SLOT_TYPE_MXM_TYPE_IV ((UCHAR)28)
|
|
#define SMBIOS_SYSTEM_SLOT_TYPE_MXM_3_0_TYPE_A ((UCHAR)29)
|
|
#define SMBIOS_SYSTEM_SLOT_TYPE_MXM_3_0_TYPE_B ((UCHAR)30)
|
|
#define SMBIOS_SYSTEM_SLOT_TYPE_PCI_EXPRESS_GEN_2_SFF_8639_U_2 ((UCHAR)31)
|
|
#define SMBIOS_SYSTEM_SLOT_TYPE_PCI_EXPRESS_GEN_3_SFF_8639_U_2 ((UCHAR)32)
|
|
#define SMBIOS_SYSTEM_SLOT_TYPE_PCI_EXPRESS_MINI_52_PIN_CEM_2_0_WITH_KEEP_OUTS ((UCHAR)33)
|
|
#define SMBIOS_SYSTEM_SLOT_TYPE_PCI_EXPRESS_MINI_52_PIN_CEM_2_0_WITHOUT_KEEP_OUTS ((UCHAR)34)
|
|
#define SMBIOS_SYSTEM_SLOT_TYPE_PCI_EXPRESS_MINI_76_PIN_CEM_2_0 ((UCHAR)35)
|
|
#define SMBIOS_SYSTEM_SLOT_TYPE_PCI_EXPRESS_GEN_4_SFF_8639_U_2 ((UCHAR)36)
|
|
#define SMBIOS_SYSTEM_SLOT_TYPE_PCI_EXPRESS_GEN_5_SFF_8639_U_2 ((UCHAR)37)
|
|
#define SMBIOS_SYSTEM_SLOT_TYPE_OCP_NIC_3_0_SMALL_FORM_FACTOR_SFF ((UCHAR)38)
|
|
#define SMBIOS_SYSTEM_SLOT_TYPE_OCP_NIC_3_0_LARGE_FORM_FACTOR_LFF ((UCHAR)39)
|
|
#define SMBIOS_SYSTEM_SLOT_TYPE_OCP_NIC_PRIOR_TO_3_0 ((UCHAR)40)
|
|
#define SMBIOS_SYSTEM_SLOT_TYPE_CXL_FLEXBUS_1_0 ((UCHAR)48)
|
|
#define SMBIOS_SYSTEM_SLOT_TYPE_PC_98_C20 ((UCHAR)160)
|
|
#define SMBIOS_SYSTEM_SLOT_TYPE_PC_98_C24 ((UCHAR)161)
|
|
#define SMBIOS_SYSTEM_SLOT_TYPE_PC_98_E ((UCHAR)162)
|
|
#define SMBIOS_SYSTEM_SLOT_TYPE_PC_98_LOCAL_BUS ((UCHAR)163)
|
|
#define SMBIOS_SYSTEM_SLOT_TYPE_PC_98_CARD ((UCHAR)164)
|
|
#define SMBIOS_SYSTEM_SLOT_TYPE_PCI_EXPRESS ((UCHAR)165)
|
|
#define SMBIOS_SYSTEM_SLOT_TYPE_PCI_EXPRESS_X1 ((UCHAR)166)
|
|
#define SMBIOS_SYSTEM_SLOT_TYPE_PCI_EXPRESS_X2 ((UCHAR)167)
|
|
#define SMBIOS_SYSTEM_SLOT_TYPE_PCI_EXPRESS_X4 ((UCHAR)168)
|
|
#define SMBIOS_SYSTEM_SLOT_TYPE_PCI_EXPRESS_X8 ((UCHAR)169)
|
|
#define SMBIOS_SYSTEM_SLOT_TYPE_PCI_EXPRESS_X16 ((UCHAR)170)
|
|
#define SMBIOS_SYSTEM_SLOT_TYPE_PCI_EXPRESS_GEN_2 ((UCHAR)171)
|
|
#define SMBIOS_SYSTEM_SLOT_TYPE_PCI_EXPRESS_GEN_2_X1 ((UCHAR)172)
|
|
#define SMBIOS_SYSTEM_SLOT_TYPE_PCI_EXPRESS_GEN_2_X2 ((UCHAR)173)
|
|
#define SMBIOS_SYSTEM_SLOT_TYPE_PCI_EXPRESS_GEN_2_X4 ((UCHAR)174)
|
|
#define SMBIOS_SYSTEM_SLOT_TYPE_PCI_EXPRESS_GEN_2_X8 ((UCHAR)175)
|
|
#define SMBIOS_SYSTEM_SLOT_TYPE_PCI_EXPRESS_GEN_2_X16 ((UCHAR)176)
|
|
#define SMBIOS_SYSTEM_SLOT_TYPE_PCI_EXPRESS_GEN_3 ((UCHAR)177)
|
|
#define SMBIOS_SYSTEM_SLOT_TYPE_PCI_EXPRESS_GEN_3_X1 ((UCHAR)178)
|
|
#define SMBIOS_SYSTEM_SLOT_TYPE_PCI_EXPRESS_GEN_3_X2 ((UCHAR)179)
|
|
#define SMBIOS_SYSTEM_SLOT_TYPE_PCI_EXPRESS_GEN_3_X4 ((UCHAR)180)
|
|
#define SMBIOS_SYSTEM_SLOT_TYPE_PCI_EXPRESS_GEN_3_X8 ((UCHAR)181)
|
|
#define SMBIOS_SYSTEM_SLOT_TYPE_PCI_EXPRESS_GEN_3_X16 ((UCHAR)182)
|
|
#define SMBIOS_SYSTEM_SLOT_TYPE_PCI_EXPRESS_GEN_4 ((UCHAR)183)
|
|
#define SMBIOS_SYSTEM_SLOT_TYPE_PCI_EXPRESS_GEN_4_X1 ((UCHAR)184)
|
|
#define SMBIOS_SYSTEM_SLOT_TYPE_PCI_EXPRESS_GEN_4_X2 ((UCHAR)185)
|
|
#define SMBIOS_SYSTEM_SLOT_TYPE_PCI_EXPRESS_GEN_4_X4 ((UCHAR)186)
|
|
#define SMBIOS_SYSTEM_SLOT_TYPE_PCI_EXPRESS_GEN_4_X8 ((UCHAR)187)
|
|
#define SMBIOS_SYSTEM_SLOT_TYPE_PCI_EXPRESS_GEN_4_X16 ((UCHAR)188)
|
|
#define SMBIOS_SYSTEM_SLOT_TYPE_PCI_EXPRESS_GEN_5 ((UCHAR)189)
|
|
#define SMBIOS_SYSTEM_SLOT_TYPE_PCI_EXPRESS_GEN_5_X1 ((UCHAR)190)
|
|
#define SMBIOS_SYSTEM_SLOT_TYPE_PCI_EXPRESS_GEN_5_X2 ((UCHAR)191)
|
|
#define SMBIOS_SYSTEM_SLOT_TYPE_PCI_EXPRESS_GEN_5_X4 ((UCHAR)192)
|
|
#define SMBIOS_SYSTEM_SLOT_TYPE_PCI_EXPRESS_GEN_5_X8 ((UCHAR)193)
|
|
#define SMBIOS_SYSTEM_SLOT_TYPE_PCI_EXPRESS_GEN_5_X16 ((UCHAR)194)
|
|
#define SMBIOS_SYSTEM_SLOT_TYPE_PCI_EXPRESS_GEN_6 ((UCHAR)195)
|
|
#define SMBIOS_SYSTEM_SLOT_TYPE_EDSFF_E1_S_E1_L ((UCHAR)196)
|
|
#define SMBIOS_SYSTEM_SLOT_TYPE_EDSFF_E3_S_E3_L ((UCHAR)197)
|
|
|
|
#define SMBIOS_SYSTEM_SLOT_BUS_WIDTH_OTHER ((UCHAR)1)
|
|
#define SMBIOS_SYSTEM_SLOT_BUS_WIDTH_UNKNOWN ((UCHAR)2)
|
|
#define SMBIOS_SYSTEM_SLOT_BUS_WIDTH_8_BIT ((UCHAR)3)
|
|
#define SMBIOS_SYSTEM_SLOT_BUS_WIDTH_16_BIT ((UCHAR)4)
|
|
#define SMBIOS_SYSTEM_SLOT_BUS_WIDTH_32_BIT ((UCHAR)5)
|
|
#define SMBIOS_SYSTEM_SLOT_BUS_WIDTH_64_BIT ((UCHAR)6)
|
|
#define SMBIOS_SYSTEM_SLOT_BUS_WIDTH_128_BIT ((UCHAR)7)
|
|
#define SMBIOS_SYSTEM_SLOT_BUS_WIDTH_1X_OR_1X ((UCHAR)8)
|
|
#define SMBIOS_SYSTEM_SLOT_BUS_WIDTH_2X_OR_2X ((UCHAR)9)
|
|
#define SMBIOS_SYSTEM_SLOT_BUS_WIDTH_4X_OR_4X ((UCHAR)10)
|
|
#define SMBIOS_SYSTEM_SLOT_BUS_WIDTH_8X_OR_8X ((UCHAR)11)
|
|
#define SMBIOS_SYSTEM_SLOT_BUS_WIDTH_12X_OR_12X ((UCHAR)12)
|
|
#define SMBIOS_SYSTEM_SLOT_BUS_WIDTH_16X_OR_16X ((UCHAR)13)
|
|
#define SMBIOS_SYSTEM_SLOT_BUS_WIDTH_32X_OR_32X ((UCHAR)14)
|
|
|
|
#define SMBIOS_SYSTEM_SLOT_USAGE_OTHER ((UCHAR)1)
|
|
#define SMBIOS_SYSTEM_SLOT_USAGE_UNKNOWN ((UCHAR)2)
|
|
#define SMBIOS_SYSTEM_SLOT_USAGE_AVAILABLE ((UCHAR)3)
|
|
#define SMBIOS_SYSTEM_SLOT_USAGE_IN_USE ((UCHAR)4)
|
|
#define SMBIOS_SYSTEM_SLOT_USAGE_UNAVAILABLE ((UCHAR)5)
|
|
|
|
#define SMBIOS_SYSTEM_SLOT_LENGTH_OTHER ((UCHAR)1)
|
|
#define SMBIOS_SYSTEM_SLOT_LENGTH_UNKNOWN ((UCHAR)2)
|
|
#define SMBIOS_SYSTEM_SLOT_LENGTH_SHORT ((UCHAR)3)
|
|
#define SMBIOS_SYSTEM_SLOT_LENGTH_LONG ((UCHAR)4)
|
|
#define SMBIOS_SYSTEM_SLOT_LENGTH_2_5_DRIVE ((UCHAR)5)
|
|
#define SMBIOS_SYSTEM_SLOT_LENGTH_3_4_DRIVE ((UCHAR)6)
|
|
|
|
#define SMBIOS_SYSTEM_SLOT_FLAG_UNKNOWN ((UCHAR)0x01)
|
|
#define SMBIOS_SYSTEM_SLOT_FLAG_5000MV ((UCHAR)0x02)
|
|
#define SMBIOS_SYSTEM_SLOT_FLAG_3300MV ((UCHAR)0x04)
|
|
#define SMBIOS_SYSTEM_SLOT_FLAG_SHARED ((UCHAR)0x08)
|
|
#define SMBIOS_SYSTEM_SLOT_FLAG_CARD_16 ((UCHAR)0x10)
|
|
#define SMBIOS_SYSTEM_SLOT_FLAG_CARD_BUS ((UCHAR)0x20)
|
|
#define SMBIOS_SYSTEM_SLOT_FLAG_CARD_ZOOM_VIDEO ((UCHAR)0x40)
|
|
#define SMBIOS_SYSTEM_SLOT_FLAG_CARD_MODEN_RING_RESUME ((UCHAR)0x80)
|
|
|
|
#define SMBIOS_SYSTEM_SLOT_FLAG_2_PME_SIGNAL ((UCHAR)0x01)
|
|
#define SMBIOS_SYSTEM_SLOT_FLAG_2_HOT_PLUG ((UCHAR)0x02)
|
|
#define SMBIOS_SYSTEM_SLOT_FLAG_2_SMBUS_SIGNAL ((UCHAR)0x04)
|
|
#define SMBIOS_SYSTEM_SLOT_FLAG_2_PCIE_BIFURCATION ((UCHAR)0x08)
|
|
#define SMBIOS_SYSTEM_SLOT_FLAG_2_SURPRISE_REMOVAL ((UCHAR)0x10)
|
|
#define SMBIOS_SYSTEM_SLOT_FLAG_2_FLEXBUS_CLX_1 ((UCHAR)0x20)
|
|
#define SMBIOS_SYSTEM_SLOT_FLAG_2_FLEXBUS_CLX_2 ((UCHAR)0x40)
|
|
#define SMBIOS_SYSTEM_SLOT_FLAG_2_FLEXBUS_CLX_4 ((UCHAR)0x80)
|
|
|
|
#define SMBIOS_SYSTEM_SLOT_HEIGHT_NOT_APPLICABLE ((UCHAR)0)
|
|
#define SMBIOS_SYSTEM_SLOT_HEIGHT_OTHER ((UCHAR)1)
|
|
#define SMBIOS_SYSTEM_SLOT_HEIGHT_UNKNOWN ((UCHAR)2)
|
|
#define SMBIOS_SYSTEM_SLOT_HEIGHT_FULL_HEIGHT ((UCHAR)3)
|
|
#define SMBIOS_SYSTEM_SLOT_HEIGHT_LOW_PROFILE ((UCHAR)4)
|
|
|
|
//
|
|
// On Board Devices Information (Type 10, Obsolete)
|
|
//
|
|
|
|
#define SMBIOS_ON_BOARD_DEVICE_INFORMATION_TYPE ((UCHAR)10)
|
|
|
|
typedef struct _SMBIOS_ON_BOARD_DEVICE_ENTRY
|
|
{
|
|
union
|
|
{
|
|
struct
|
|
{
|
|
UCHAR Type : 7; // SMBIOS_ON_BOARD_DEVICE_TYPE_*
|
|
UCHAR Enabled : 1;
|
|
};
|
|
|
|
UCHAR Value;
|
|
} Device;
|
|
UCHAR Description; // string
|
|
} SMBIOS_ON_BOARD_DEVICE_ENTRY, *PSMBIOS_ON_BOARD_DEVICE_ENTRY;
|
|
|
|
typedef struct _SMBIOS_ON_BOARD_DEVICE_INFORMATION
|
|
{
|
|
SMBIOS_HEADER Header;
|
|
SMBIOS_ON_BOARD_DEVICE_ENTRY Devices[ANYSIZE_ARRAY]; // (Header.Length - 4) / 2
|
|
} SMBIOS_ON_BOARD_DEVICE_INFORMATION, *PSMBIOS_ON_BOARD_DEVICE_INFORMATION;
|
|
|
|
C_ASSERT(sizeof(SMBIOS_ON_BOARD_DEVICE_INFORMATION) == 0x6);
|
|
|
|
#define SMBIOS_ON_BOARD_DEVICE_TYPE_OTHER ((UCHAR)1)
|
|
#define SMBIOS_ON_BOARD_DEVICE_TYPE_UNKNOWN ((UCHAR)2)
|
|
#define SMBIOS_ON_BOARD_DEVICE_TYPE_VIDEO ((UCHAR)3)
|
|
#define SMBIOS_ON_BOARD_DEVICE_TYPE_SCSI_CONTROLLER ((UCHAR)4)
|
|
#define SMBIOS_ON_BOARD_DEVICE_TYPE_ETHERNET ((UCHAR)5)
|
|
#define SMBIOS_ON_BOARD_DEVICE_TYPE_TOKEN_RING ((UCHAR)6)
|
|
#define SMBIOS_ON_BOARD_DEVICE_TYPE_SOUND ((UCHAR)7)
|
|
#define SMBIOS_ON_BOARD_DEVICE_TYPE_PATA_CONTROLLER ((UCHAR)8)
|
|
#define SMBIOS_ON_BOARD_DEVICE_TYPE_SATA_CONTROLLER ((UCHAR)9)
|
|
#define SMBIOS_ON_BOARD_DEVICE_TYPE_SAS_CONTROLLER ((UCHAR)10)
|
|
|
|
#define SMBIOS_OEM_STRING_INFORMATION_TYPE ((UCHAR)11)
|
|
|
|
//
|
|
// OEM Strings (Type 11)
|
|
//
|
|
|
|
typedef struct _SMBIOS_OEM_STRING_INFORMATION
|
|
{
|
|
SMBIOS_HEADER Header;
|
|
UCHAR Count;
|
|
} SMBIOS_OEM_STRING_INFORMATION, *PSMBIOS_OEM_STRING_INFORMATION;
|
|
|
|
C_ASSERT(sizeof(SMBIOS_OEM_STRING_INFORMATION) == 0x5);
|
|
|
|
//
|
|
// System Configuration Options (Type 12)
|
|
//
|
|
|
|
#define SMBIOS_SYSTEM_CONFIGURATION_OPTION_INFORMATION_TYPE ((UCHAR)12)
|
|
|
|
typedef struct _SMBIOS_SYSTEM_CONFIGURATION_OPTION_INFORMATION
|
|
{
|
|
SMBIOS_HEADER Header;
|
|
UCHAR Count;
|
|
} SMBIOS_SYSTEM_CONFIGURATION_OPTION_INFORMATION, *PSMBIOS_SYSTEM_CONFIGURATION_OPTION_INFORMATION;
|
|
|
|
C_ASSERT(sizeof(SMBIOS_SYSTEM_CONFIGURATION_OPTION_INFORMATION) == 0x5);
|
|
|
|
//
|
|
// Firmware Language Information (Type 13)
|
|
//
|
|
|
|
#define SMBIOS_FIRMWARE_LANGUAGE_INFORMATION_TYPE ((UCHAR)13)
|
|
|
|
typedef struct _SMBIOS_FIRMWARE_LANGUAGE_INFORMATION
|
|
{
|
|
SMBIOS_HEADER Header;
|
|
// 2.0+
|
|
UCHAR InstallableLanguages;
|
|
|
|
union
|
|
{
|
|
struct
|
|
{
|
|
// 2.1+
|
|
UCHAR AbbreviatedFormat : 1;
|
|
UCHAR Reserved : 7;
|
|
};
|
|
|
|
UCHAR Value;
|
|
} Flags;
|
|
|
|
UCHAR Reserved[15];
|
|
UCHAR CurrentLanguage; // string
|
|
} SMBIOS_FIRMWARE_LANGUAGE_INFORMATION, *PSMBIOS_FIRMWARE_LANGUAGE_INFORMATION;
|
|
|
|
C_ASSERT(sizeof(SMBIOS_FIRMWARE_LANGUAGE_INFORMATION) == 0x16);
|
|
|
|
//
|
|
// Group Associations (Type 14)
|
|
//
|
|
|
|
#define SMBIOS_GROUP_ASSOCIATION_INFORMATION_TYPE ((UCHAR)14)
|
|
|
|
typedef struct _SMBIOS_GROUP_ASSOCIATION_INFORMATION
|
|
{
|
|
SMBIOS_HEADER Header;
|
|
UCHAR Name; // string
|
|
UCHAR ItemType;
|
|
USHORT ItemHandle;
|
|
} SMBIOS_GROUP_ASSOCIATION_INFORMATION, *PSMBIOS_GROUP_ASSOCIATION_INFORMATION;
|
|
|
|
C_ASSERT(sizeof(SMBIOS_GROUP_ASSOCIATION_INFORMATION) == 0x8);
|
|
|
|
//
|
|
// System Event Log (Type 15)
|
|
//
|
|
|
|
#define SMBIOS_SYSTEM_EVENT_LOG_INFORMATION_TYPE ((UCHAR)15)
|
|
|
|
typedef struct _SMBIOS_SYSTEM_EVENT_LOG_INFORMATION
|
|
{
|
|
SMBIOS_HEADER Header;
|
|
// 2.0+
|
|
USHORT AreaLength;
|
|
USHORT HeaderStartOffset;
|
|
USHORT DataStartOffset;
|
|
UCHAR AccessMethod;
|
|
|
|
union
|
|
{
|
|
struct
|
|
{
|
|
UCHAR Valid : 1;
|
|
UCHAR Full : 1;
|
|
UCHAR Reserved : 6;
|
|
};
|
|
|
|
UCHAR Value;
|
|
} Status;
|
|
|
|
ULONG ChangeToken;
|
|
ULONG AccessMethodAddress;
|
|
// 2.1+
|
|
UCHAR HeaderFormat;
|
|
UCHAR NumberOfDescriptors;
|
|
UCHAR LengthOfDescriptors;
|
|
UCHAR Descriptors[ANYSIZE_ARRAY];
|
|
} SMBIOS_SYSTEM_EVENT_LOG_INFORMATION, *PSMBIOS_SYSTEM_EVENT_LOG_INFORMATION;
|
|
|
|
C_ASSERT(sizeof(SMBIOS_SYSTEM_EVENT_LOG_INFORMATION) == 0x18);
|
|
|
|
//
|
|
// Physical Memory Array (Type 16)
|
|
//
|
|
|
|
#define SMBIOS_PHYSICAL_MEMORY_ARRAY_INFORMATION_TYPE ((UCHAR)16)
|
|
|
|
typedef struct _SMBIOS_PHYSICAL_MEMORY_ARRAY_INFORMATION
|
|
{
|
|
SMBIOS_HEADER Header;
|
|
// 2.1+
|
|
UCHAR Location; // SMBIOS_PHYSICAL_MEMORY_ARRAY_LOCATION_*
|
|
UCHAR Use; // SMBIOS_PHYSICAL_MEMORY_ARRAY_USE_*
|
|
UCHAR ErrorCorrection; // SMBIOS_PHYSICAL_MEMORY_ARRAY_ERROR_CORRECTION_*
|
|
ULONG MaximumCapacity;
|
|
USHORT ErrorInformationHandle;
|
|
USHORT NumberOfMemoryDevices;
|
|
// 2.7+
|
|
ULONGLONG ExtendedMaximumCapacity;
|
|
} SMBIOS_PHYSICAL_MEMORY_ARRAY_INFORMATION, *PSMBIOS_PHYSICAL_MEMORY_ARRAY_INFORMATION;
|
|
|
|
C_ASSERT(sizeof(SMBIOS_PHYSICAL_MEMORY_ARRAY_INFORMATION) == 0x17);
|
|
|
|
#define SMBIOS_PHYSICAL_MEMORY_ARRAY_LOCATION_OTHER ((UCHAR)1)
|
|
#define SMBIOS_PHYSICAL_MEMORY_ARRAY_LOCATION_UNKNOWN ((UCHAR)2)
|
|
#define SMBIOS_PHYSICAL_MEMORY_ARRAY_LOCATION_MOTHERBOARD ((UCHAR)3)
|
|
#define SMBIOS_PHYSICAL_MEMORY_ARRAY_LOCATION_ISA ((UCHAR)4)
|
|
#define SMBIOS_PHYSICAL_MEMORY_ARRAY_LOCATION_EISA ((UCHAR)5)
|
|
#define SMBIOS_PHYSICAL_MEMORY_ARRAY_LOCATION_PCI ((UCHAR)6)
|
|
#define SMBIOS_PHYSICAL_MEMORY_ARRAY_LOCATION_MCA ((UCHAR)7)
|
|
#define SMBIOS_PHYSICAL_MEMORY_ARRAY_LOCATION_PCMCIA ((UCHAR)8)
|
|
#define SMBIOS_PHYSICAL_MEMORY_ARRAY_LOCATION_PROPRIETARY ((UCHAR)9)
|
|
#define SMBIOS_PHYSICAL_MEMORY_ARRAY_LOCATION_NUBUS ((UCHAR)10)
|
|
#define SMBIOS_PHYSICAL_MEMORY_ARRAY_LOCATION_PC_98_C20 ((UCHAR)160)
|
|
#define SMBIOS_PHYSICAL_MEMORY_ARRAY_LOCATION_PC_98_C24 ((UCHAR)161)
|
|
#define SMBIOS_PHYSICAL_MEMORY_ARRAY_LOCATION_PC_98_E ((UCHAR)162)
|
|
#define SMBIOS_PHYSICAL_MEMORY_ARRAY_LOCATION_PC_98_LOCAL_BUS ((UCHAR)163)
|
|
#define SMBIOS_PHYSICAL_MEMORY_ARRAY_LOCATION_PC_98_CXL ((UCHAR)164)
|
|
|
|
#define SMBIOS_PHYSICAL_MEMORY_ARRAY_USE_OTHER ((UCHAR)1)
|
|
#define SMBIOS_PHYSICAL_MEMORY_ARRAY_USE_UNKNOWN ((UCHAR)2)
|
|
#define SMBIOS_PHYSICAL_MEMORY_ARRAY_USE_SYSTEM ((UCHAR)3)
|
|
#define SMBIOS_PHYSICAL_MEMORY_ARRAY_USE_VIDEO ((UCHAR)4)
|
|
#define SMBIOS_PHYSICAL_MEMORY_ARRAY_USE_FLASH ((UCHAR)5)
|
|
#define SMBIOS_PHYSICAL_MEMORY_ARRAY_USE_NON_VOLATILE ((UCHAR)6)
|
|
#define SMBIOS_PHYSICAL_MEMORY_ARRAY_USE_CACHE ((UCHAR)7)
|
|
|
|
#define SMBIOS_PHYSICAL_MEMORY_ARRAY_ERROR_CORRECTION_OTHER ((UCHAR)1)
|
|
#define SMBIOS_PHYSICAL_MEMORY_ARRAY_ERROR_CORRECTION_UNKNOWN ((UCHAR)2)
|
|
#define SMBIOS_PHYSICAL_MEMORY_ARRAY_ERROR_CORRECTION_NONE ((UCHAR)3)
|
|
#define SMBIOS_PHYSICAL_MEMORY_ARRAY_ERROR_CORRECTION_PARITY ((UCHAR)4)
|
|
#define SMBIOS_PHYSICAL_MEMORY_ARRAY_ERROR_CORRECTION_SINGLE_BIT_ECC ((UCHAR)5)
|
|
#define SMBIOS_PHYSICAL_MEMORY_ARRAY_ERROR_CORRECTION_MULTI_BIT_ECC ((UCHAR)6)
|
|
#define SMBIOS_PHYSICAL_MEMORY_ARRAY_ERROR_CORRECTION_CRC ((UCHAR)7)
|
|
|
|
//
|
|
// Memory Device (Type 17)
|
|
//
|
|
|
|
#define SMBIOS_MEMORY_DEVICE_INFORMATION_TYPE ((UCHAR)17)
|
|
|
|
typedef struct _SMBIOS_MEMORY_DEVICE_INFORMATION
|
|
{
|
|
SMBIOS_HEADER Header;
|
|
// 2.1+
|
|
USHORT PhysicalArrayHandle;
|
|
USHORT MemoryErrorInformationHandle;
|
|
USHORT TotalWidth;
|
|
USHORT DataWidth;
|
|
|
|
union
|
|
{
|
|
struct
|
|
{
|
|
USHORT Size : 15;
|
|
USHORT Granularity : 1; // 0 = megabytes, 1 = kilobytes
|
|
};
|
|
|
|
USHORT Value;
|
|
} Size;
|
|
|
|
UCHAR FormFactor; // SMBIOS_MEMORY_DEVICE_FORM_FACTOR_*
|
|
UCHAR DeviceSet;
|
|
UCHAR DeviceLocator; // string
|
|
UCHAR BankLocator; // string
|
|
UCHAR MemoryType; // SMBIOS_MEMORY_DEVICE_TYPE_*
|
|
USHORT TypeDetail; // SMBIOS_MEMORY_DEVICE_TYPE_DETAIL_*
|
|
USHORT Speed;
|
|
// 2.3+
|
|
UCHAR Manufacturer; // string
|
|
UCHAR SerialNumber; // string
|
|
UCHAR AssetTag; // string
|
|
UCHAR PartNumber; // string
|
|
// 2.6+
|
|
|
|
union
|
|
{
|
|
struct
|
|
{
|
|
UCHAR Rank : 4;
|
|
UCHAR Reserved : 4;
|
|
};
|
|
|
|
UCHAR Value;
|
|
} Attributes;
|
|
|
|
// 2.7+
|
|
ULONG ExtendedSize;
|
|
USHORT ConfiguredSpeed;
|
|
// 2.8+
|
|
USHORT MinimumVoltage;
|
|
USHORT MaximumVoltage;
|
|
USHORT ConfiguredVoltage;
|
|
// 3.2+
|
|
UCHAR Technology; // SMBIOS_MEMORY_DEVICE_TECHNOLOGY_*
|
|
USHORT ModeCapabilities; // SMBIOS_MEMORY_DEVICE_MODE_*
|
|
UCHAR FirmwareVersion; // string
|
|
USHORT ModuleManufacturerID;
|
|
USHORT ModuleProductID;
|
|
USHORT SubsystemControllerManufacturerID;
|
|
USHORT SubsystemControllerProductID;
|
|
ULONGLONG NonVolatileSize;
|
|
ULONGLONG VolatileSize;
|
|
ULONGLONG CacheSize;
|
|
ULONGLONG LogicalSize;
|
|
// 3.3+
|
|
ULONG ExtendedSpeed;
|
|
ULONG ExtendedConfiguredSpeed;
|
|
// 3.7+
|
|
USHORT PMIC0ManufacturerID;
|
|
USHORT PMIC0Revision;
|
|
USHORT RCDManufacturerID;
|
|
USHORT RCDRevision;
|
|
} SMBIOS_MEMORY_DEVICE_INFORMATION, *PSMBIOS_MEMORY_DEVICE_INFORMATION;
|
|
|
|
C_ASSERT(sizeof(SMBIOS_MEMORY_DEVICE_INFORMATION) == 0x64);
|
|
|
|
#define SMBIOS_MEMORY_DEVICE_FORM_FACTOR_OTHER ((UCHAR)1)
|
|
#define SMBIOS_MEMORY_DEVICE_FORM_FACTOR_UNKNOWN ((UCHAR)2)
|
|
#define SMBIOS_MEMORY_DEVICE_FORM_FACTOR_SIMM ((UCHAR)3)
|
|
#define SMBIOS_MEMORY_DEVICE_FORM_FACTOR_SIP ((UCHAR)4)
|
|
#define SMBIOS_MEMORY_DEVICE_FORM_FACTOR_CHIP ((UCHAR)5)
|
|
#define SMBIOS_MEMORY_DEVICE_FORM_FACTOR_DIP ((UCHAR)6)
|
|
#define SMBIOS_MEMORY_DEVICE_FORM_FACTOR_ZIP ((UCHAR)7)
|
|
#define SMBIOS_MEMORY_DEVICE_FORM_FACTOR_PROPRIETARY ((UCHAR)8)
|
|
#define SMBIOS_MEMORY_DEVICE_FORM_FACTOR_DIMM ((UCHAR)9)
|
|
#define SMBIOS_MEMORY_DEVICE_FORM_FACTOR_TSOP ((UCHAR)10)
|
|
#define SMBIOS_MEMORY_DEVICE_FORM_FACTOR_ROW_OF_CHIPS ((UCHAR)11)
|
|
#define SMBIOS_MEMORY_DEVICE_FORM_FACTOR_RIMM ((UCHAR)12)
|
|
#define SMBIOS_MEMORY_DEVICE_FORM_FACTOR_SODIMM ((UCHAR)13)
|
|
#define SMBIOS_MEMORY_DEVICE_FORM_FACTOR_SRIMM ((UCHAR)14)
|
|
#define SMBIOS_MEMORY_DEVICE_FORM_FACTOR_FB_DIMM ((UCHAR)15)
|
|
#define SMBIOS_MEMORY_DEVICE_FORM_FACTOR_DIE ((UCHAR)16)
|
|
#define SMBIOS_MEMORY_DEVICE_FORM_FACTOR_CAMM ((UCHAR)17)
|
|
|
|
#define SMBIOS_MEMORY_DEVICE_TYPE_OTHER ((UCHAR)1)
|
|
#define SMBIOS_MEMORY_DEVICE_TYPE_UNKNOWN ((UCHAR)2)
|
|
#define SMBIOS_MEMORY_DEVICE_TYPE_DRAM ((UCHAR)3)
|
|
#define SMBIOS_MEMORY_DEVICE_TYPE_EDRAM ((UCHAR)4)
|
|
#define SMBIOS_MEMORY_DEVICE_TYPE_VRAM ((UCHAR)5)
|
|
#define SMBIOS_MEMORY_DEVICE_TYPE_SRAM ((UCHAR)6)
|
|
#define SMBIOS_MEMORY_DEVICE_TYPE_RAM ((UCHAR)7)
|
|
#define SMBIOS_MEMORY_DEVICE_TYPE_ROM ((UCHAR)8)
|
|
#define SMBIOS_MEMORY_DEVICE_TYPE_FLASH ((UCHAR)9)
|
|
#define SMBIOS_MEMORY_DEVICE_TYPE_EEPROM ((UCHAR)10)
|
|
#define SMBIOS_MEMORY_DEVICE_TYPE_FEPROM ((UCHAR)11)
|
|
#define SMBIOS_MEMORY_DEVICE_TYPE_EPROM ((UCHAR)12)
|
|
#define SMBIOS_MEMORY_DEVICE_TYPE_CDRAM ((UCHAR)13)
|
|
#define SMBIOS_MEMORY_DEVICE_TYPE_3DRAM ((UCHAR)14)
|
|
#define SMBIOS_MEMORY_DEVICE_TYPE_SDRAM ((UCHAR)15)
|
|
#define SMBIOS_MEMORY_DEVICE_TYPE_SGRAM ((UCHAR)16)
|
|
#define SMBIOS_MEMORY_DEVICE_TYPE_RDRAM ((UCHAR)17)
|
|
#define SMBIOS_MEMORY_DEVICE_TYPE_DDR ((UCHAR)18)
|
|
#define SMBIOS_MEMORY_DEVICE_TYPE_DDR2 ((UCHAR)19)
|
|
#define SMBIOS_MEMORY_DEVICE_TYPE_DDR2_FB_DIMM ((UCHAR)20)
|
|
// 21-23 reserved
|
|
#define SMBIOS_MEMORY_DEVICE_TYPE_DDR3 ((UCHAR)24)
|
|
#define SMBIOS_MEMORY_DEVICE_TYPE_FBD2 ((UCHAR)25)
|
|
#define SMBIOS_MEMORY_DEVICE_TYPE_DDR4 ((UCHAR)26)
|
|
#define SMBIOS_MEMORY_DEVICE_TYPE_LPDDR ((UCHAR)27)
|
|
#define SMBIOS_MEMORY_DEVICE_TYPE_LPDDR2 ((UCHAR)28)
|
|
#define SMBIOS_MEMORY_DEVICE_TYPE_LPDDR3 ((UCHAR)29)
|
|
#define SMBIOS_MEMORY_DEVICE_TYPE_LPDDR4 ((UCHAR)30)
|
|
#define SMBIOS_MEMORY_DEVICE_TYPE_LOCAL_NON_VOLATILE ((UCHAR)31)
|
|
#define SMBIOS_MEMORY_DEVICE_TYPE_HBM ((UCHAR)32)
|
|
#define SMBIOS_MEMORY_DEVICE_TYPE_HBM2 ((UCHAR)33)
|
|
#define SMBIOS_MEMORY_DEVICE_TYPE_DDR5 ((UCHAR)34)
|
|
#define SMBIOS_MEMORY_DEVICE_TYPE_LPDDR5 ((UCHAR)35)
|
|
#define SMBIOS_MEMORY_DEVICE_TYPE_HBM3 ((UCHAR)36)
|
|
|
|
#define SMBIOS_MEMORY_DEVICE_TYPE_DETAIL_RESERVED ((USHORT)0x0001)
|
|
#define SMBIOS_MEMORY_DEVICE_TYPE_DETAIL_OTHER ((USHORT)0x0002)
|
|
#define SMBIOS_MEMORY_DEVICE_TYPE_DETAIL_UNKNOWN ((USHORT)0x0004)
|
|
#define SMBIOS_MEMORY_DEVICE_TYPE_DETAIL_FAST_PAGED ((USHORT)0x0008)
|
|
#define SMBIOS_MEMORY_DEVICE_TYPE_DETAIL_STATIC_COL ((USHORT)0x0010)
|
|
#define SMBIOS_MEMORY_DEVICE_TYPE_DETAIL_PSEUDO_STATIC ((USHORT)0x0020)
|
|
#define SMBIOS_MEMORY_DEVICE_TYPE_DETAIL_RAMBUS ((USHORT)0x0040)
|
|
#define SMBIOS_MEMORY_DEVICE_TYPE_DETAIL_SYNCHRONOUS ((USHORT)0x0080)
|
|
#define SMBIOS_MEMORY_DEVICE_TYPE_DETAIL_CMOS ((USHORT)0x0100)
|
|
#define SMBIOS_MEMORY_DEVICE_TYPE_DETAIL_EDO ((USHORT)0x0200)
|
|
#define SMBIOS_MEMORY_DEVICE_TYPE_DETAIL_WINDOW_DRAM ((USHORT)0x0400)
|
|
#define SMBIOS_MEMORY_DEVICE_TYPE_DETAIL_CACHE_DRAM ((USHORT)0x0800)
|
|
#define SMBIOS_MEMORY_DEVICE_TYPE_DETAIL_NON_VOLATILE ((USHORT)0x1000)
|
|
#define SMBIOS_MEMORY_DEVICE_TYPE_DETAIL_BUFFERED ((USHORT)0x2000)
|
|
#define SMBIOS_MEMORY_DEVICE_TYPE_DETAIL_UNBUFFERED ((USHORT)0x4000)
|
|
#define SMBIOS_MEMORY_DEVICE_TYPE_DETAIL_LRDIMM ((USHORT)0x8000)
|
|
|
|
#define SMBIOS_MEMORY_DEVICE_TECHNOLOGY_OTHER ((UCHAR)1)
|
|
#define SMBIOS_MEMORY_DEVICE_TECHNOLOGY_UNKNOWN ((UCHAR)2)
|
|
#define SMBIOS_MEMORY_DEVICE_TECHNOLOGY_DRAM ((UCHAR)3)
|
|
#define SMBIOS_MEMORY_DEVICE_TECHNOLOGY_NVDIMM_N ((UCHAR)4)
|
|
#define SMBIOS_MEMORY_DEVICE_TECHNOLOGY_NVDIMM_F ((UCHAR)5)
|
|
#define SMBIOS_MEMORY_DEVICE_TECHNOLOGY_NVDIMM_P ((UCHAR)6)
|
|
#define SMBIOS_MEMORY_DEVICE_TECHNOLOGY_INTEL_OPTANE ((UCHAR)7)
|
|
#define SMBIOS_MEMORY_DEVICE_TECHNOLOGY_MRDIMM ((UCHAR)8)
|
|
|
|
#define SMBIOS_MEMORY_DEVICE_MODE_RESERVED ((USHORT)0x0001)
|
|
#define SMBIOS_MEMORY_DEVICE_MODE_OTHER ((USHORT)0x0002)
|
|
#define SMBIOS_MEMORY_DEVICE_MODE_UNKNOWN ((USHORT)0x0004)
|
|
#define SMBIOS_MEMORY_DEVICE_MODE_VOLATILE ((USHORT)0x0008)
|
|
#define SMBIOS_MEMORY_DEVICE_MODE_BYTE_ACCESSIBLE_PERSISTENT ((USHORT)0x0010)
|
|
#define SMBIOS_MEMORY_DEVICE_MODE_BLOCK_ACCESSIBLE_PERSISTENT ((USHORT)0x0020)
|
|
#define SMBIOS_MEMORY_DEVICE_MODE_RESERVED2 ((USHORT)0xFFC0)
|
|
|
|
//
|
|
// 32-Bit Memory Error Information (Type 18)
|
|
//
|
|
|
|
#define SMBIOS_32_BIT_MEMORY_ERROR_INFORMATION_TYPE ((UCHAR)18)
|
|
|
|
typedef struct _SMBIOS_32_BIT_MEMORY_ERROR_INFORMATION
|
|
{
|
|
SMBIOS_HEADER Header;
|
|
// 2.1+
|
|
UCHAR Type; // SMBIOS_MEMORY_ERROR_TYPE_*
|
|
UCHAR Granularity; // SMBIOS_MEMORY_ERROR_GRANULARITY_*
|
|
UCHAR Operation; // SMBIOS_MEMORY_ERROR_OPERATION_*
|
|
ULONG VendorSyndrome;
|
|
ULONG ArrayErrorAddress;
|
|
ULONG DeviceErrorAddress;
|
|
ULONG ErrorResolution;
|
|
} SMBIOS_32_BIT_MEMORY_ERROR_INFORMATION, *PSMBIOS_32_BIT_MEMORY_ERROR_INFORMATION;
|
|
|
|
C_ASSERT(sizeof(SMBIOS_32_BIT_MEMORY_ERROR_INFORMATION) == 0x17);
|
|
|
|
//
|
|
// Memory Array Mapped Address (Type 19)
|
|
//
|
|
|
|
#define SMBIOS_MEMORY_ARRAY_MAPPED_ADDRESS_INFORMATION_TYPE ((UCHAR)19)
|
|
|
|
typedef struct _SMBIOS_MEMORY_ARRAY_MAPPED_ADDRESS_INFORMATION
|
|
{
|
|
SMBIOS_HEADER Header;
|
|
// 2.1+
|
|
ULONG StartingAddress;
|
|
ULONG EndingAddress;
|
|
USHORT ArrayHandle;
|
|
UCHAR PartitionWidth;
|
|
// 2.7+
|
|
ULONGLONG ExtendedStartingAddress;
|
|
ULONGLONG ExtendedEndingAddress;
|
|
} SMBIOS_MEMORY_ARRAY_MAPPED_ADDRESS_INFORMATION, *PSMBIOS_MEMORY_ARRAY_MAPPED_ADDRESS_INFORMATION;
|
|
|
|
C_ASSERT(sizeof(SMBIOS_MEMORY_ARRAY_MAPPED_ADDRESS_INFORMATION) == 0x1F);
|
|
|
|
//
|
|
// Memory Device Mapped Address (Type 20)
|
|
//
|
|
|
|
#define SMBIOS_MEMORY_DEVICE_MAPPED_ADDRESS_INFORMATION_TYPE ((UCHAR)20)
|
|
|
|
typedef struct _SMBIOS_MEMORY_DEVICE_MAPPED_ADDRESS_INFORMATION
|
|
{
|
|
SMBIOS_HEADER Header;
|
|
// 2.1+
|
|
ULONG StartingAddress;
|
|
ULONG EndingAddress;
|
|
USHORT DeviceHandle;
|
|
USHORT ArrayMappedAddressHandle;
|
|
UCHAR PartitionRowPosition;
|
|
UCHAR InterleavePosition;
|
|
UCHAR InterleavedDataDepth;
|
|
// 2.7+
|
|
ULONGLONG ExtendedStartingAddress;
|
|
ULONGLONG ExtendedEndingAddress;
|
|
} SMBIOS_MEMORY_DEVICE_MAPPED_ADDRESS_INFORMATION, *PSMBIOS_MEMORY_DEVICE_MAPPED_ADDRESS_INFORMATION;
|
|
|
|
C_ASSERT(sizeof(SMBIOS_MEMORY_DEVICE_MAPPED_ADDRESS_INFORMATION) == 0x23);
|
|
|
|
//
|
|
// Built-in Pointing Device (Type 21)
|
|
//
|
|
|
|
#define SMBIOS_BUILT_IN_POINTING_DEVICE_INFORMATION_TYPE ((UCHAR)21)
|
|
|
|
typedef struct _SMBIOS_BUILT_IN_POINTING_DEVICE_INFORMATION
|
|
{
|
|
SMBIOS_HEADER Header;
|
|
// 2.1+
|
|
UCHAR PointerType; // SMBIOS_BUILT_IN_POINTING_DEVICE_TYPE_*
|
|
UCHAR PointerInterface; // SMBIOS_BUILT_IN_POINTING_DEVICE_INTERFACE_*
|
|
UCHAR PointerButtons;
|
|
} SMBIOS_BUILT_IN_POINTING_DEVICE_INFORMATION, *PSMBIOS_BUILT_IN_POINTING_DEVICE_INFORMATION;
|
|
|
|
C_ASSERT(sizeof(SMBIOS_BUILT_IN_POINTING_DEVICE_INFORMATION) == 0x7);
|
|
|
|
#define SMBIOS_BUILT_IN_POINTING_DEVICE_TYPE_OTHER ((UCHAR)1)
|
|
#define SMBIOS_BUILT_IN_POINTING_DEVICE_TYPE_UNKNOWN ((UCHAR)2)
|
|
#define SMBIOS_BUILT_IN_POINTING_DEVICE_TYPE_MOUSE ((UCHAR)3)
|
|
#define SMBIOS_BUILT_IN_POINTING_DEVICE_TYPE_TRACK_BALL ((UCHAR)4)
|
|
#define SMBIOS_BUILT_IN_POINTING_DEVICE_TYPE_TRACK_POINT ((UCHAR)5)
|
|
#define SMBIOS_BUILT_IN_POINTING_DEVICE_TYPE_GLIDE_POINT ((UCHAR)6)
|
|
#define SMBIOS_BUILT_IN_POINTING_DEVICE_TYPE_TOUCH_PAD ((UCHAR)7)
|
|
#define SMBIOS_BUILT_IN_POINTING_DEVICE_TYPE_TOUCH_SCREEN ((UCHAR)8)
|
|
#define SMBIOS_BUILT_IN_POINTING_DEVICE_TYPE_OPTICAL_SENSOR ((UCHAR)9)
|
|
|
|
#define SMBIOS_BUILT_IN_POINTING_DEVICE_INTERFACE_OTHER ((UCHAR)1)
|
|
#define SMBIOS_BUILT_IN_POINTING_DEVICE_INTERFACE_UNKNOWN ((UCHAR)2)
|
|
#define SMBIOS_BUILT_IN_POINTING_DEVICE_INTERFACE_SERIAL ((UCHAR)3)
|
|
#define SMBIOS_BUILT_IN_POINTING_DEVICE_INTERFACE_PS2 ((UCHAR)4)
|
|
#define SMBIOS_BUILT_IN_POINTING_DEVICE_INTERFACE_INFRARED ((UCHAR)5)
|
|
#define SMBIOS_BUILT_IN_POINTING_DEVICE_INTERFACE_HP_HIL ((UCHAR)6)
|
|
#define SMBIOS_BUILT_IN_POINTING_DEVICE_INTERFACE_BUS_MOUSE ((UCHAR)7)
|
|
#define SMBIOS_BUILT_IN_POINTING_DEVICE_INTERFACE_ADB ((UCHAR)8)
|
|
#define SMBIOS_BUILT_IN_POINTING_DEVICE_INTERFACE_DB_9 ((UCHAR)160)
|
|
#define SMBIOS_BUILT_IN_POINTING_DEVICE_INTERFACE_MICRO_DIN ((UCHAR)161)
|
|
#define SMBIOS_BUILT_IN_POINTING_DEVICE_INTERFACE_USB ((UCHAR)162)
|
|
#define SMBIOS_BUILT_IN_POINTING_DEVICE_INTERFACE_I2C ((UCHAR)163)
|
|
#define SMBIOS_BUILT_IN_POINTING_DEVICE_INTERFACE_SPI ((UCHAR)164)
|
|
|
|
//
|
|
// Portable Battery (Type 22)
|
|
//
|
|
|
|
#define SMBIOS_PORTABLE_BATTERY_INFORMATION_TYPE ((UCHAR)22)
|
|
|
|
typedef struct _SMBIOS_PORTABLE_BATTERY_INFORMATION
|
|
{
|
|
SMBIOS_HEADER Header;
|
|
// 2.1+
|
|
UCHAR Location; // string
|
|
UCHAR Manufacturer; // string
|
|
UCHAR ManufactureDate; // string
|
|
UCHAR SerialNumber; // string
|
|
UCHAR DeviceName; // string
|
|
UCHAR DeviceChemistry; // SMBIOS_PORTABLE_BATTERY_CHEMISTRY_*
|
|
USHORT DesignCapacity;
|
|
USHORT DesignVoltage;
|
|
UCHAR SBDSVersionNumber; // string
|
|
UCHAR MaximumError;
|
|
// 2.2+
|
|
USHORT SBDSSerialNumber;
|
|
|
|
union
|
|
{
|
|
struct
|
|
{
|
|
USHORT Day : 5;
|
|
USHORT Month : 4;
|
|
USHORT Year : 7; // Biased by 1980
|
|
};
|
|
|
|
USHORT Value;
|
|
} SBDSManufactureDate;
|
|
|
|
UCHAR SBDSDeviceChemistry; // string
|
|
UCHAR DesignCapacityMultiplier;
|
|
ULONG OEMSpecific;
|
|
} SMBIOS_PORTABLE_BATTERY_INFORMATION, *PSMBIOS_PORTABLE_BATTERY_INFORMATION;
|
|
|
|
C_ASSERT(sizeof(SMBIOS_PORTABLE_BATTERY_INFORMATION) == 0x1A);
|
|
|
|
#define SMBIOS_PORTABLE_BATTERY_CHEMISTRY_OTHER ((UCHAR)1)
|
|
#define SMBIOS_PORTABLE_BATTERY_CHEMISTRY_UNKNOWN ((UCHAR)2)
|
|
#define SMBIOS_PORTABLE_BATTERY_CHEMISTRY_LEAD_ACID ((UCHAR)3)
|
|
#define SMBIOS_PORTABLE_BATTERY_CHEMISTRY_NICKEL_CADMIUM ((UCHAR)4)
|
|
#define SMBIOS_PORTABLE_BATTERY_CHEMISTRY_NICKEL_METAL ((UCHAR)5)
|
|
#define SMBIOS_PORTABLE_BATTERY_CHEMISTRY_LITHIUM_ION ((UCHAR)6)
|
|
#define SMBIOS_PORTABLE_BATTERY_CHEMISTRY_ZINC_AIR ((UCHAR)7)
|
|
#define SMBIOS_PORTABLE_BATTERY_CHEMISTRY_LITHIUM_POLYMER ((UCHAR)8)
|
|
|
|
//
|
|
// System Reset (Type 23)
|
|
//
|
|
|
|
#define SMBIOS_SYSTEM_RESET_INFORMATION_TYPE ((UCHAR)23)
|
|
|
|
typedef struct _SMBIOS_SYSTEM_RESET_INFORMATION
|
|
{
|
|
SMBIOS_HEADER Header;
|
|
// 2.2+
|
|
|
|
union
|
|
{
|
|
struct
|
|
{
|
|
UCHAR UserEnabled : 1;
|
|
UCHAR WatchdogReset : 2; // SMBIOS_SYSTEM_RESET_WATCHDOG_*
|
|
UCHAR WatchdogAction : 2; // SMBIOS_SYSTEM_RESET_WATCHDOG_*
|
|
UCHAR WatchdogExists : 1;
|
|
UCHAR Reserved : 2;
|
|
};
|
|
|
|
UCHAR Value;
|
|
} Capabilities;
|
|
|
|
USHORT ResetCount;
|
|
USHORT ResetLimit;
|
|
USHORT TimerInterval;
|
|
USHORT Timeout;
|
|
} SMBIOS_SYSTEM_RESET_INFORMATION, *PSMBIOS_SYSTEM_RESET_INFORMATION;
|
|
|
|
C_ASSERT(sizeof(SMBIOS_SYSTEM_RESET_INFORMATION) == 0xD);
|
|
|
|
#define SMBIOS_SYSTEM_RESET_WATCHDOG_RESERVED ((UCHAR)0)
|
|
#define SMBIOS_SYSTEM_RESET_WATCHDOG_OPERATING_SYSTEM ((UCHAR)1)
|
|
#define SMBIOS_SYSTEM_RESET_WATCHDOG_SYSTEM_UTILITES ((UCHAR)2)
|
|
#define SMBIOS_SYSTEM_RESET_WATCHDOG_DO_NOT_REBOOT ((UCHAR)3)
|
|
|
|
//
|
|
// Hardware Security (Type 24)
|
|
//
|
|
|
|
#define SMBIOS_HARDWARE_SECURITY_INFORMATION_TYPE ((UCHAR)24)
|
|
|
|
typedef struct _SMBIOS_HARDWARE_SECURITY_INFORMATION
|
|
{
|
|
SMBIOS_HEADER Header;
|
|
// 2.2+
|
|
|
|
union
|
|
{
|
|
struct
|
|
{
|
|
UCHAR FrontPanelReset : 2; // SMBIOS_HARDWARE_SECURITY_SETTING_*
|
|
UCHAR AdministratorPassword : 2; // SMBIOS_HARDWARE_SECURITY_SETTING_*
|
|
UCHAR KeyboardPassword : 2; // SMBIOS_HARDWARE_SECURITY_SETTING_*
|
|
UCHAR PowerOnPassword : 2; // SMBIOS_HARDWARE_SECURITY_SETTING_*
|
|
};
|
|
|
|
UCHAR Value;
|
|
} HardwareSecuritySettings;
|
|
} SMBIOS_HARDWARE_SECURITY_INFORMATION, *PSMBIOS_HARDWARE_SECURITY_INFORMATION;
|
|
|
|
C_ASSERT(sizeof(SMBIOS_HARDWARE_SECURITY_INFORMATION) == 0x5);
|
|
|
|
#define SMBIOS_HARDWARE_SECURITY_SETTING_DISABLED ((UCHAR)0)
|
|
#define SMBIOS_HARDWARE_SECURITY_SETTING_ENABLED ((UCHAR)1)
|
|
#define SMBIOS_HARDWARE_SECURITY_SETTING_NOT_IMPLEMENTED ((UCHAR)2)
|
|
#define SMBIOS_HARDWARE_SECURITY_SETTING_UNKNOWN ((UCHAR)3)
|
|
|
|
//
|
|
// System Power Controls (Type 25)
|
|
//
|
|
|
|
#define SMBIOS_SYSTEM_POWER_CONTROLS_INFORMATION_TYPE ((UCHAR)25)
|
|
|
|
typedef struct _SMBIOS_SYSTEM_POWER_CONTROLS_INFORMATION
|
|
{
|
|
SMBIOS_HEADER Header;
|
|
// 2.2+
|
|
UCHAR Month;
|
|
UCHAR Day;
|
|
UCHAR Hour;
|
|
UCHAR Minute;
|
|
UCHAR Second;
|
|
} SMBIOS_SYSTEM_POWER_CONTROLS_INFORMATION, *PSMBIOS_SYSTEM_POWER_CONTROLS_INFORMATION;
|
|
|
|
C_ASSERT(sizeof(SMBIOS_SYSTEM_POWER_CONTROLS_INFORMATION) == 0x9);
|
|
|
|
//
|
|
// Voltage Probe (Type 26)
|
|
//
|
|
|
|
#define SMBIOS_VOLTAGE_PROBE_INFORMATION_TYPE ((UCHAR)26)
|
|
|
|
typedef struct _SMBIOS_VOLTAGE_PROBE_INFORMATION
|
|
{
|
|
SMBIOS_HEADER Header;
|
|
// 2.2+
|
|
UCHAR Description; // string
|
|
|
|
union
|
|
{
|
|
struct
|
|
{
|
|
UCHAR Location : 5; // SMBIOS_VOLTAGE_PROBE_LOCATION_*
|
|
UCHAR Status : 3; // SMBIOS_PROBE_STATUS_*
|
|
};
|
|
|
|
UCHAR Value;
|
|
} LocationAndStatus;
|
|
|
|
USHORT MaximumValue;
|
|
USHORT MinimumValue;
|
|
USHORT Resolution;
|
|
USHORT Tolerance;
|
|
USHORT Accuracy;
|
|
ULONG OEMDefined;
|
|
USHORT NominalValue;
|
|
} SMBIOS_VOLTAGE_PROBE_INFORMATION, *PSMBIOS_VOLTAGE_PROBE_INFORMATION;
|
|
|
|
C_ASSERT(sizeof(SMBIOS_VOLTAGE_PROBE_INFORMATION) == 0x16);
|
|
|
|
#define SMBIOS_VOLTAGE_PROBE_LOCATION_OTHER ((UCHAR)1)
|
|
#define SMBIOS_VOLTAGE_PROBE_LOCATION_UNKNOWN ((UCHAR)2)
|
|
#define SMBIOS_VOLTAGE_PROBE_LOCATION_PROCESSOR ((UCHAR)3)
|
|
#define SMBIOS_VOLTAGE_PROBE_LOCATION_DISK ((UCHAR)4)
|
|
#define SMBIOS_VOLTAGE_PROBE_LOCATION_PERIPHERAL_BAY ((UCHAR)5)
|
|
#define SMBIOS_VOLTAGE_PROBE_LOCATION_SYSTEM_MANAGEMENT_MODULE ((UCHAR)6)
|
|
#define SMBIOS_VOLTAGE_PROBE_LOCATION_MOTHERBOARD ((UCHAR)7)
|
|
#define SMBIOS_VOLTAGE_PROBE_LOCATION_MEMORY_MODULE ((UCHAR)8)
|
|
#define SMBIOS_VOLTAGE_PROBE_LOCATION_PROCESSOR_MODULE ((UCHAR)9)
|
|
#define SMBIOS_VOLTAGE_PROBE_LOCATION_POWER_UNIT ((UCHAR)10)
|
|
#define SMBIOS_VOLTAGE_PROBE_LOCATION_ADD_IN_CARD ((UCHAR)11)
|
|
|
|
//
|
|
// Cooling Device (Type 27)
|
|
//
|
|
|
|
#define SMBIOS_COOLING_DEVICE_INFORMATION_TYPE ((UCHAR)27)
|
|
|
|
typedef struct _SMBIOS_COOLING_DEVICE_INFORMATION
|
|
{
|
|
SMBIOS_HEADER Header;
|
|
// 2.2+
|
|
USHORT TemperatureProbeHandle;
|
|
|
|
union
|
|
{
|
|
struct
|
|
{
|
|
UCHAR DeviceType : 5; // SMBIOS_COOLING_DEVICE_TYPE_*
|
|
UCHAR Status : 3; // SMBIOS_COOLING_DEVICE_STATUS_*
|
|
};
|
|
|
|
UCHAR Value;
|
|
} DeviceTypeAndStatus;
|
|
|
|
UCHAR CoolingUnitGroup;
|
|
ULONG OEMDefined;
|
|
USHORT NominalSpeed;
|
|
// 2.7+
|
|
UCHAR Description; // string
|
|
} SMBIOS_COOLING_DEVICE_INFORMATION, *PSMBIOS_COOLING_DEVICE_INFORMATION;
|
|
|
|
C_ASSERT(sizeof(SMBIOS_COOLING_DEVICE_INFORMATION) == 0xF);
|
|
|
|
#define SMBIOS_COOLING_DEVICE_TYPE_OTHER ((UCHAR)1)
|
|
#define SMBIOS_COOLING_DEVICE_TYPE_UNKNOWN ((UCHAR)2)
|
|
#define SMBIOS_COOLING_DEVICE_TYPE_FAN ((UCHAR)3)
|
|
#define SMBIOS_COOLING_DEVICE_TYPE_CENTRIFUGAL_BLOWER ((UCHAR)4)
|
|
#define SMBIOS_COOLING_DEVICE_TYPE_CHIP_FAN ((UCHAR)5)
|
|
#define SMBIOS_COOLING_DEVICE_TYPE_CABINET_FAN ((UCHAR)6)
|
|
#define SMBIOS_COOLING_DEVICE_TYPE_POWER_SUPPLY_FAN ((UCHAR)7)
|
|
#define SMBIOS_COOLING_DEVICE_TYPE_HEAT_PIPE ((UCHAR)8)
|
|
#define SMBIOS_COOLING_DEVICE_TYPE_INTEGRATED_REFRIGERATION ((UCHAR)9)
|
|
#define SMBIOS_COOLING_DEVICE_TYPE_ACTIVE_COOLING ((UCHAR)10)
|
|
#define SMBIOS_COOLING_DEVICE_TYPE_PASSIVE_COOLING ((UCHAR)11)
|
|
|
|
#define SMBIOS_COOLING_DEVICE_STATUS_OTHER ((UCHAR)1)
|
|
#define SMBIOS_COOLING_DEVICE_STATUS_UNKNOWN ((UCHAR)2)
|
|
#define SMBIOS_COOLING_DEVICE_STATUS_OK ((UCHAR)3)
|
|
#define SMBIOS_COOLING_DEVICE_STATUS_NON_CRITICAL ((UCHAR)4)
|
|
#define SMBIOS_COOLING_DEVICE_STATUS_CRITICAL ((UCHAR)5)
|
|
#define SMBIOS_COOLING_DEVICE_STATUS_NON_RECOVERABLE ((UCHAR)6)
|
|
|
|
//
|
|
// Temperature Probe (Type 28)
|
|
//
|
|
|
|
#define SMBIOS_TEMPERATURE_PROBE_INFORMATION_TYPE ((UCHAR)28)
|
|
|
|
typedef struct _SMBIOS_TEMPERATURE_PROBE_INFORMATION
|
|
{
|
|
SMBIOS_HEADER Header;
|
|
// 2.2+
|
|
UCHAR Description; // string
|
|
|
|
union
|
|
{
|
|
struct
|
|
{
|
|
UCHAR Location : 5; // SMBIOS_TEMPERATURE_PROBE_LOCATION_*
|
|
UCHAR Status : 3; // SMBIOS_PROBE_STATUS_*
|
|
};
|
|
|
|
UCHAR Value;
|
|
} LocationAndStatus;
|
|
|
|
SHORT MaximumValue;
|
|
SHORT MinimumValue;
|
|
USHORT Resolution;
|
|
USHORT Tolerance;
|
|
USHORT Accuracy;
|
|
ULONG OEMDefined;
|
|
SHORT NominalValue;
|
|
} SMBIOS_TEMPERATURE_PROBE_INFORMATION, *PSMBIOS_TEMPERATURE_PROBE_INFORMATION;
|
|
|
|
C_ASSERT(sizeof(SMBIOS_TEMPERATURE_PROBE_INFORMATION) == 0x16);
|
|
|
|
#define SMBIOS_TEMPERATURE_PROBE_LOCATION_OTHER ((UCHAR)1)
|
|
#define SMBIOS_TEMPERATURE_PROBE_LOCATION_UNKNOWN ((UCHAR)2)
|
|
#define SMBIOS_TEMPERATURE_PROBE_LOCATION_PROCESSOR ((UCHAR)3)
|
|
#define SMBIOS_TEMPERATURE_PROBE_LOCATION_DISK ((UCHAR)4)
|
|
#define SMBIOS_TEMPERATURE_PROBE_LOCATION_PERIPHERAL_BAY ((UCHAR)5)
|
|
#define SMBIOS_TEMPERATURE_PROBE_LOCATION_SYSTEM_MANAGEMENT_MODULE ((UCHAR)6)
|
|
#define SMBIOS_TEMPERATURE_PROBE_LOCATION_MOTHERBOARD ((UCHAR)7)
|
|
#define SMBIOS_TEMPERATURE_PROBE_LOCATION_MEMORY_MODULE ((UCHAR)8)
|
|
#define SMBIOS_TEMPERATURE_PROBE_LOCATION_PROCESSOR_MODULE ((UCHAR)9)
|
|
#define SMBIOS_TEMPERATURE_PROBE_LOCATION_POWER_UNIT ((UCHAR)10)
|
|
#define SMBIOS_TEMPERATURE_PROBE_LOCATION_ADD_IN_CARD ((UCHAR)11)
|
|
#define SMBIOS_TEMPERATURE_PROBE_LOCATION_FRONT_PANEL_BOARD ((UCHAR)12)
|
|
#define SMBIOS_TEMPERATURE_PROBE_LOCATION_BACK_PANEL_BOARD ((UCHAR)13)
|
|
#define SMBIOS_TEMPERATURE_PROBE_LOCATION_POWER_SYSTEM_BOARD ((UCHAR)14)
|
|
#define SMBIOS_TEMPERATURE_PROBE_LOCATION_DRIVE_BACK_PLANE ((UCHAR)15)
|
|
|
|
//
|
|
// Electrical Current Probe (Type 29)
|
|
//
|
|
|
|
#define SMBIOS_ELECTRICAL_CURRENT_PROBE_INFORMATION_TYPE ((UCHAR)29)
|
|
|
|
typedef struct _SMBIOS_ELECTRICAL_CURRENT_PROBE_INFORMATION
|
|
{
|
|
SMBIOS_HEADER Header;
|
|
// 2.2+
|
|
UCHAR Description; // string
|
|
|
|
union
|
|
{
|
|
struct
|
|
{
|
|
UCHAR Location : 5; // SMBIOS_ELECTRICAL_CURRENT_PROBE_LOCATION_*
|
|
UCHAR Status : 3; // SMBIOS_PROBE_STATUS_*
|
|
};
|
|
|
|
UCHAR Value;
|
|
} LocationAndStatus;
|
|
|
|
USHORT MaximumValue;
|
|
USHORT MinimumValue;
|
|
USHORT Resolution;
|
|
USHORT Tolerance;
|
|
USHORT Accuracy;
|
|
ULONG OEMDefined;
|
|
USHORT NominalValue;
|
|
} SMBIOS_ELECTRICAL_CURRENT_PROBE_INFORMATION, *PSMBIOS_ELECTRICAL_CURRENT_PROBE_INFORMATION;
|
|
|
|
C_ASSERT(sizeof(SMBIOS_ELECTRICAL_CURRENT_PROBE_INFORMATION) == 0x16);
|
|
|
|
#define SMBIOS_ELECTRICAL_CURRENT_PROBE_LOCATION_OTHER ((UCHAR)1)
|
|
#define SMBIOS_ELECTRICAL_CURRENT_PROBE_LOCATION_UNKNOWN ((UCHAR)2)
|
|
#define SMBIOS_ELECTRICAL_CURRENT_PROBE_LOCATION_PROCESSOR ((UCHAR)3)
|
|
#define SMBIOS_ELECTRICAL_CURRENT_PROBE_LOCATION_DISK ((UCHAR)4)
|
|
#define SMBIOS_ELECTRICAL_CURRENT_PROBE_LOCATION_PERIPHERAL_BAY ((UCHAR)5)
|
|
#define SMBIOS_ELECTRICAL_CURRENT_PROBE_LOCATION_SYSTEM_MANAGEMENT_MODULE ((UCHAR)6)
|
|
#define SMBIOS_ELECTRICAL_CURRENT_PROBE_LOCATION_MOTHERBOARD ((UCHAR)7)
|
|
#define SMBIOS_ELECTRICAL_CURRENT_PROBE_LOCATION_MEMORY_MODULE ((UCHAR)8)
|
|
#define SMBIOS_ELECTRICAL_CURRENT_PROBE_LOCATION_PROCESSOR_MODULE ((UCHAR)9)
|
|
#define SMBIOS_ELECTRICAL_CURRENT_PROBE_LOCATION_POWER_UNIT ((UCHAR)10)
|
|
#define SMBIOS_ELECTRICAL_CURRENT_PROBE_LOCATION_ADD_IN_CARD ((UCHAR)11)
|
|
|
|
//
|
|
// Out-of-Band Remote Access (Type 30)
|
|
//
|
|
|
|
#define SMBIOS_OUT_OF_BAND_REMOTE_ACCESS_INFORMATION_TYPE ((UCHAR)30)
|
|
|
|
typedef struct _SMBIOS_OUT_OF_BAND_REMOTE_ACCESS_INFORMATION
|
|
{
|
|
SMBIOS_HEADER Header;
|
|
// 2.2+
|
|
UCHAR Manufacturer; // string
|
|
|
|
union
|
|
{
|
|
struct
|
|
{
|
|
UCHAR InboundEnabled : 1;
|
|
UCHAR OutboundEnabled : 1;
|
|
UCHAR Reserved : 6;
|
|
};
|
|
|
|
UCHAR Value;
|
|
} Connections;
|
|
} SMBIOS_OUT_OF_BAND_REMOTE_ACCESS_INFORMATION, *PSMBIOS_OUT_OF_BAND_REMOTE_ACCESS_INFORMATION;
|
|
|
|
C_ASSERT(sizeof(SMBIOS_OUT_OF_BAND_REMOTE_ACCESS_INFORMATION) == 0x6);
|
|
|
|
//
|
|
// Boot Integrity Services (BIS) Entry Point (Type 31)
|
|
//
|
|
|
|
#define SMBIOS_BOOT_INTEGRITY_SERVICES_ENTRY_POINT ((UCHAR)31)
|
|
|
|
//
|
|
// Structure type 31 (decimal) is reserved for use by the Boot Integrity Services (BIS).
|
|
// See the Boot Integrity Services API Specification for details.
|
|
//
|
|
|
|
//
|
|
// System Boot Information (Type 32)
|
|
//
|
|
|
|
#define SMBIOS_SYSTEM_BOOT_INFORMATION_TYPE ((UCHAR)32)
|
|
|
|
typedef struct _SMBIOS_SYSTEM_BOOT_INFORMATION
|
|
{
|
|
SMBIOS_HEADER Header;
|
|
// 2.3+
|
|
UCHAR Reserved[6];
|
|
UCHAR BootStatus; // SMBIOS_SYSTEM_BOOT_STATUS_*
|
|
} SMBIOS_SYSTEM_BOOT_INFORMATION, *PSMBIOS_SYSTEM_BOOT_INFORMATION;
|
|
|
|
C_ASSERT(sizeof(SMBIOS_SYSTEM_BOOT_INFORMATION) == 0xB);
|
|
|
|
#define SMBIOS_SYSTEM_BOOT_STATUS_NO_ERROR ((UCHAR)0)
|
|
#define SMBIOS_SYSTEM_BOOT_STATUS_NO_BOOTABLE_MEDIA ((UCHAR)1)
|
|
#define SMBIOS_SYSTEM_BOOT_STATUS_OPERATING_SYSTEM_FAILED_TO_LOAD ((UCHAR)2)
|
|
#define SMBIOS_SYSTEM_BOOT_STATUS_FIRMWARE_DETECTED_HARDWARE_FAILURE ((UCHAR)3)
|
|
#define SMBIOS_SYSTEM_BOOT_STATUS_OPERATING_SYSTEM_DETECTED_HARDWARE_FAILURE ((UCHAR)4)
|
|
#define SMBIOS_SYSTEM_BOOT_STATUS_USER_REQUESTED_BOOT ((UCHAR)5)
|
|
#define SMBIOS_SYSTEM_BOOT_STATUS_SECURITY_VIOLATION ((UCHAR)6)
|
|
#define SMBIOS_SYSTEM_BOOT_STATUS_PREVIOUSLY_REQUESTED_IMAGE ((UCHAR)7)
|
|
#define SMBIOS_SYSTEM_BOOT_STATUS_WATCHDOG_EXPIRED ((UCHAR)8)
|
|
// 9-127 specification reserved
|
|
// 128-191 OEM reserved
|
|
// 192-255 product specific
|
|
|
|
//
|
|
// 64-Bit Memory Error Information (Type 33)
|
|
//
|
|
|
|
#define SMBIOS_64_BIT_MEMORY_ERROR_INFORMATION_TYPE ((UCHAR)33)
|
|
|
|
typedef struct _SMBIOS_64_BIT_MEMORY_ERROR_INFORMATION
|
|
{
|
|
SMBIOS_HEADER Header;
|
|
// 2.3+
|
|
UCHAR Type; // SMBIOS_MEMORY_ERROR_TYPE_*
|
|
UCHAR Granularity; // SMBIOS_MEMORY_ERROR_GRANULARITY_*
|
|
UCHAR Operation; // SMBIOS_MEMORY_ERROR_OPERATION_*
|
|
ULONG VendorSyndrome;
|
|
ULONGLONG ArrayErrorAddress;
|
|
ULONGLONG DeviceErrorAddress;
|
|
ULONG ErrorResolution;
|
|
} SMBIOS_64_BIT_MEMORY_ERROR_INFORMATION, *PSMBIOS_64_BIT_MEMORY_ERROR_INFORMATION;
|
|
|
|
C_ASSERT(sizeof(SMBIOS_64_BIT_MEMORY_ERROR_INFORMATION) == 0x1F);
|
|
|
|
//
|
|
// Management Device (Type 34)
|
|
//
|
|
|
|
#define SMBIOS_MANAGEMENT_DEVICE_INFORMATION_TYPE ((UCHAR)34)
|
|
|
|
typedef struct _SMBIOS_MANAGEMENT_DEVICE_INFORMATION
|
|
{
|
|
SMBIOS_HEADER Header;
|
|
// 2.3+
|
|
UCHAR Description; // string
|
|
UCHAR DeviceType; // SMBIOS_MANAGEMENT_DEVICE_TYPE_*
|
|
ULONG Address;
|
|
UCHAR AddressType; // SMBIOS_MANAGEMENT_DEVICE_ADDRESS_TYPE_*
|
|
} SMBIOS_MANAGEMENT_DEVICE_INFORMATION, *PSMBIOS_MANAGEMENT_DEVICE_INFORMATION;
|
|
|
|
C_ASSERT(sizeof(SMBIOS_MANAGEMENT_DEVICE_INFORMATION) == 0xB);
|
|
|
|
#define SMBIOS_MANAGEMENT_DEVICE_TYPE_OTHER ((UCHAR)1)
|
|
#define SMBIOS_MANAGEMENT_DEVICE_TYPE_UNKNOWN ((UCHAR)2)
|
|
#define SMBIOS_MANAGEMENT_DEVICE_TYPE_LM75 ((UCHAR)3)
|
|
#define SMBIOS_MANAGEMENT_DEVICE_TYPE_LM78 ((UCHAR)4)
|
|
#define SMBIOS_MANAGEMENT_DEVICE_TYPE_LM79 ((UCHAR)5)
|
|
#define SMBIOS_MANAGEMENT_DEVICE_TYPE_LM80 ((UCHAR)6)
|
|
#define SMBIOS_MANAGEMENT_DEVICE_TYPE_LM81 ((UCHAR)7)
|
|
#define SMBIOS_MANAGEMENT_DEVICE_TYPE_ADM9240 ((UCHAR)8)
|
|
#define SMBIOS_MANAGEMENT_DEVICE_TYPE_DS1780 ((UCHAR)9)
|
|
#define SMBIOS_MANAGEMENT_DEVICE_TYPE_1617 ((UCHAR)10)
|
|
#define SMBIOS_MANAGEMENT_DEVICE_TYPE_GL518SM ((UCHAR)11)
|
|
#define SMBIOS_MANAGEMENT_DEVICE_TYPE_W83781D ((UCHAR)12)
|
|
#define SMBIOS_MANAGEMENT_DEVICE_TYPE_HT82H791 ((UCHAR)13)
|
|
|
|
#define SMBIOS_MANAGEMENT_DEVICE_ADDRESS_TYPE_OTHER ((UCHAR)1)
|
|
#define SMBIOS_MANAGEMENT_DEVICE_ADDRESS_TYPE_UNKNOWN ((UCHAR)2)
|
|
#define SMBIOS_MANAGEMENT_DEVICE_ADDRESS_TYPE_IO_PORT ((UCHAR)3)
|
|
#define SMBIOS_MANAGEMENT_DEVICE_ADDRESS_TYPE_MEMORY ((UCHAR)4)
|
|
#define SMBIOS_MANAGEMENT_DEVICE_ADDRESS_TYPE_SMBUS ((UCHAR)5)
|
|
|
|
//
|
|
// Management Device Component (Type 35)
|
|
//
|
|
|
|
#define SMBIOS_MANAGEMENT_DEVICE_COMPONENT_INFORMATION_TYPE ((UCHAR)35)
|
|
|
|
typedef struct _SMBIOS_MANAGEMENT_DEVICE_COMPONENT_INFORMATION
|
|
{
|
|
SMBIOS_HEADER Header;
|
|
// 2.3+
|
|
UCHAR Description; // string
|
|
USHORT ManagementDeviceHandle;
|
|
USHORT ComponentHandle;
|
|
USHORT ThresholdHandle;
|
|
} SMBIOS_MANAGEMENT_DEVICE_COMPONENT_INFORMATION, *PSMBIOS_MANAGEMENT_DEVICE_COMPONENT_INFORMATION;
|
|
|
|
C_ASSERT(sizeof(SMBIOS_MANAGEMENT_DEVICE_COMPONENT_INFORMATION) == 0xB);
|
|
|
|
//
|
|
// Management Device Threshold Data (Type 36)
|
|
//
|
|
|
|
#define SMBIOS_MANAGEMENT_DEVICE_THRESHOLD_INFORMATION_TYPE ((UCHAR)36)
|
|
|
|
typedef struct _SMBIOS_MANAGEMENT_DEVICE_THRESHOLD_INFORMATION
|
|
{
|
|
SMBIOS_HEADER Header;
|
|
// 2.3+
|
|
USHORT LowerThresholdNonCritical;
|
|
USHORT UpperThresholdNonCritical;
|
|
USHORT LowerThresholdCritical;
|
|
USHORT UpperThresholdCritical;
|
|
USHORT LowerThresholdNonRecoverable;
|
|
USHORT UpperThresholdNonRecoverable;
|
|
} SMBIOS_MANAGEMENT_DEVICE_THRESHOLD_INFORMATION, *PSMBIOS_MANAGEMENT_DEVICE_THRESHOLD_INFORMATION;
|
|
|
|
C_ASSERT(sizeof(SMBIOS_MANAGEMENT_DEVICE_THRESHOLD_INFORMATION) == 0x10);
|
|
|
|
//
|
|
// Memory Channel (Type 37)
|
|
//
|
|
|
|
#define SMBIOS_MEMORY_CHANNEL_INFORMATION_TYPE ((UCHAR)37)
|
|
|
|
typedef struct _SMBIOS_MEMORY_CHANNEL_ENTRY
|
|
{
|
|
UCHAR Load;
|
|
USHORT Handle;
|
|
} SMBIOS_MEMORY_CHANNEL_ENTRY, *PSMBIOS_MEMORY_CHANNEL_ENTRY;
|
|
|
|
typedef struct _SMBIOS_MEMORY_CHANNEL_INFORMATION
|
|
{
|
|
SMBIOS_HEADER Header;
|
|
// 2.3+
|
|
UCHAR Type; // SMBIOS_MEMORY_CHANNEL_TYPE_*
|
|
UCHAR MaximumLoad;
|
|
UCHAR Count;
|
|
SMBIOS_MEMORY_CHANNEL_ENTRY Entries[ANYSIZE_ARRAY];
|
|
} SMBIOS_MEMORY_CHANNEL_INFORMATION, *PSMBIOS_MEMORY_CHANNEL_INFORMATION;
|
|
|
|
C_ASSERT(sizeof(SMBIOS_MEMORY_CHANNEL_INFORMATION) == 0xA);
|
|
|
|
#define SMBIOS_MEMORY_CHANNEL_TYPE_OTHER ((UCHAR)1)
|
|
#define SMBIOS_MEMORY_CHANNEL_TYPE_UNKNOWN ((UCHAR)2)
|
|
#define SMBIOS_MEMORY_CHANNEL_TYPE_RAMBUS ((UCHAR)3)
|
|
#define SMBIOS_MEMORY_CHANNEL_TYPE_SYNC_LINK ((UCHAR)4)
|
|
|
|
//
|
|
// IPMI Device Information (Type 38)
|
|
//
|
|
|
|
#define SMBIOS_IPMI_DEVICE_INFORMATION_TYPE ((UCHAR)38)
|
|
|
|
typedef struct _SMBIOS_IPMI_DEVICE_INFORMATION
|
|
{
|
|
SMBIOS_HEADER Header;
|
|
// 2.3+
|
|
UCHAR Type; // SMBIOS_IPMI_INTERFACE_TYPE_*
|
|
|
|
union
|
|
{
|
|
struct
|
|
{
|
|
UCHAR Minor : 4;
|
|
UCHAR Major : 4;
|
|
};
|
|
|
|
UCHAR Value;
|
|
} SpecificationRevision;
|
|
|
|
UCHAR I2CTargetAddress;
|
|
UCHAR NVStorageDeviceAddress;
|
|
ULONGLONG BaseAddress;
|
|
|
|
union
|
|
{
|
|
struct
|
|
{
|
|
UCHAR InterruptTriggerMode : 1; // 1 = level, 0 = edge
|
|
UCHAR InterruptPolarity : 1; // 1 = active high, 0 = active low
|
|
UCHAR Reserved : 1;
|
|
UCHAR InterruptInfo : 1; // 1 = specified, 0 = not specified
|
|
UCHAR LSBAddress : 1; // address bit 0 value
|
|
UCHAR Reserved2 : 1;
|
|
UCHAR RegisterSpacing : 2; // SMBIOS_IPMI_REGISTER_SPACING_*
|
|
};
|
|
|
|
UCHAR Value;
|
|
} Info;
|
|
|
|
UCHAR InterruptNumber;
|
|
} SMBIOS_IPMI_DEVICE_INFORMATION, *PSMBIOS_IPMI_DEVICE_INFORMATION;
|
|
|
|
C_ASSERT(sizeof(SMBIOS_IPMI_DEVICE_INFORMATION) == 0x12);
|
|
|
|
#define SMBIOS_IPMI_INTERFACE_TYPE_UNKONWN ((UCHAR)0)
|
|
#define SMBIOS_IPMI_INTERFACE_TYPE_KCS ((UCHAR)1)
|
|
#define SMBIOS_IPMI_INTERFACE_TYPE_SMIC ((UCHAR)2)
|
|
#define SMBIOS_IPMI_INTERFACE_TYPE_BT ((UCHAR)3)
|
|
#define SMBIOS_IPMI_INTERFACE_TYPE_SSIF ((UCHAR)4)
|
|
|
|
#define SMBIOS_IPMI_REGISTER_SPACING_SUCCESSIVE ((UCHAR)0)
|
|
#define SMBIOS_IPMI_REGISTER_SPACING_32_BIT ((UCHAR)1)
|
|
#define SMBIOS_IPMI_REGISTER_SPACING_16_BIT ((UCHAR)2)
|
|
#define SMBIOS_IPMI_REGISTER_SPACING_RESERVED ((UCHAR)3)
|
|
|
|
//
|
|
// System Power Supply (Type 39)
|
|
//
|
|
|
|
#define SMBIOS_SYSTEM_POWER_SUPPLY_INFORMATION_TYPE ((UCHAR)39)
|
|
|
|
typedef struct _SMBIOS_SYSTEM_POWER_SUPPLY_INFORMATION
|
|
{
|
|
SMBIOS_HEADER Header;
|
|
// 2.3.1+
|
|
UCHAR PowerUnitGroup;
|
|
UCHAR Location; // string
|
|
UCHAR DeviceName; // string
|
|
UCHAR Manufacturer; // string
|
|
UCHAR SerialNumber; // string
|
|
UCHAR AssetTag; // string
|
|
UCHAR ModelPartNumber; // string
|
|
UCHAR Revision; // string
|
|
USHORT MaxPowerCapacity;
|
|
|
|
union
|
|
{
|
|
struct
|
|
{
|
|
USHORT HostSwappable : 1;
|
|
USHORT Present : 1;
|
|
USHORT Unplugged : 1;
|
|
USHORT RangeSwitching : 4; // SMBIOS_POWER_SUPPLY_RANGE_SWITCHING_*
|
|
USHORT Status : 3; // SMBIOS_POWER_SUPPLY_STATUS_*
|
|
USHORT Type : 4; // SMBIOS_POWER_SUPPLY_TYPE_*
|
|
USHORT Reserved : 2;
|
|
};
|
|
|
|
USHORT Value;
|
|
} Characteristics;
|
|
|
|
USHORT InputVoltageProbeHandle;
|
|
USHORT CoolingDeviceHandle;
|
|
USHORT InputCurrentProbeHandle;
|
|
} SMBIOS_SYSTEM_POWER_SUPPLY_INFORMATION, *PSMBIOS_SYSTEM_POWER_SUPPLY_INFORMATION;
|
|
|
|
C_ASSERT(sizeof(SMBIOS_SYSTEM_POWER_SUPPLY_INFORMATION) == 0x16);
|
|
|
|
#define SMBIOS_POWER_SUPPLY_RANGE_SWITCHING_OTHER ((USHORT)1)
|
|
#define SMBIOS_POWER_SUPPLY_RANGE_SWITCHING_UNKNOWN ((USHORT)2)
|
|
#define SMBIOS_POWER_SUPPLY_RANGE_SWITCHING_MANUAL ((USHORT)3)
|
|
#define SMBIOS_POWER_SUPPLY_RANGE_SWITCHING_AUTO_SWITCH ((USHORT)4)
|
|
#define SMBIOS_POWER_SUPPLY_RANGE_SWITCHING_WIDE_RANGE ((USHORT)5)
|
|
#define SMBIOS_POWER_SUPPLY_RANGE_SWITCHING_NOT_APPLICABLE ((USHORT)6)
|
|
|
|
#define SMBIOS_POWER_SUPPLY_STATUS_OTHER ((USHORT)1)
|
|
#define SMBIOS_POWER_SUPPLY_STATUS_UNKNOWN ((USHORT)2)
|
|
#define SMBIOS_POWER_SUPPLY_STATUS_OK ((USHORT)3)
|
|
#define SMBIOS_POWER_SUPPLY_STATUS_NON_CRITICAL ((USHORT)4)
|
|
#define SMBIOS_POWER_SUPPLY_STATUS_CRITICAL ((USHORT)5)
|
|
|
|
#define SMBIOS_POWER_SUPPLY_TYPE_OTHER ((USHORT)1)
|
|
#define SMBIOS_POWER_SUPPLY_TYPE_UNKNOWN ((USHORT)2)
|
|
#define SMBIOS_POWER_SUPPLY_TYPE_LINEAR ((USHORT)3)
|
|
#define SMBIOS_POWER_SUPPLY_TYPE_SWITCHING ((USHORT)4)
|
|
#define SMBIOS_POWER_SUPPLY_TYPE_BATTERY ((USHORT)5)
|
|
#define SMBIOS_POWER_SUPPLY_TYPE_UPS ((USHORT)6)
|
|
#define SMBIOS_POWER_SUPPLY_TYPE_CONVERTER ((USHORT)7)
|
|
#define SMBIOS_POWER_SUPPLY_TYPE_REGULATOR ((USHORT)8)
|
|
|
|
//
|
|
// Additional Information (Type 40)
|
|
//
|
|
|
|
#define SMBIOS_ADDITIONAL_INFORMATION_TYPE ((UCHAR)40)
|
|
|
|
typedef struct _SMBIOS_ADDITIONAL_ENTRY
|
|
{
|
|
UCHAR Length;
|
|
USHORT ReferencedHandle;
|
|
UCHAR ReferencedOffset;
|
|
UCHAR String; // string
|
|
UCHAR Value[ANYSIZE_ARRAY];
|
|
} SMBIOS_ADDITIONAL_ENTRY, *PSMBIOS_ADDITIONAL_ENTRY;
|
|
|
|
typedef struct _SMBIOS_ADDITIONAL_INFORMATION
|
|
{
|
|
SMBIOS_HEADER Header;
|
|
// 2.6+
|
|
UCHAR Count;
|
|
SMBIOS_ADDITIONAL_ENTRY Entries[ANYSIZE_ARRAY];
|
|
} SMBIOS_ADDITIONAL_INFORMATION, *PSMBIOS_ADDITIONAL_INFORMATION;
|
|
|
|
C_ASSERT(sizeof(SMBIOS_ADDITIONAL_INFORMATION) == 0xB);
|
|
|
|
//
|
|
// Onboard Devices Extended Information (Type 41)
|
|
//
|
|
|
|
#define SMBIOS_ONBOARD_DEVICE_INFORMATION_TYPE ((UCHAR)41)
|
|
|
|
typedef struct _SMBIOS_ONBOARD_DEVICE_INFORMATION
|
|
{
|
|
SMBIOS_HEADER Header;
|
|
// 2.6+
|
|
UCHAR ReferenceDesignation; // string
|
|
|
|
union
|
|
{
|
|
struct
|
|
{
|
|
UCHAR Type : 7; // SMBIOS_ONBOARD_DEVICE_TYPE_*
|
|
UCHAR Enabled : 1;
|
|
};
|
|
|
|
UCHAR Value;
|
|
} DeviceType;
|
|
|
|
UCHAR DeviceTypeInstance;
|
|
USHORT SegmentGroupNumber;
|
|
UCHAR BusNumber;
|
|
|
|
union
|
|
{
|
|
struct
|
|
{
|
|
UCHAR FunctionNumber : 3;
|
|
UCHAR DeviceNumber : 5;
|
|
};
|
|
|
|
UCHAR Value;
|
|
} DeviceFunctionNumber;
|
|
|
|
} SMBIOS_ONBOARD_DEVICE_INFORMATION, *PSMBIOS_ONBOARD_DEVICE_INFORMATION;
|
|
|
|
C_ASSERT(sizeof(SMBIOS_ONBOARD_DEVICE_INFORMATION) == 0xB);
|
|
|
|
#define SMBIOS_ONBOARD_DEVICE_TYPE_OTHER ((UCHAR)1)
|
|
#define SMBIOS_ONBOARD_DEVICE_TYPE_UNKNOWN ((UCHAR)2)
|
|
#define SMBIOS_ONBOARD_DEVICE_TYPE_VIDEO ((UCHAR)3)
|
|
#define SMBIOS_ONBOARD_DEVICE_TYPE_SCSI ((UCHAR)4)
|
|
#define SMBIOS_ONBOARD_DEVICE_TYPE_ETHERNET ((UCHAR)5)
|
|
#define SMBIOS_ONBOARD_DEVICE_TYPE_TOKEN_RING ((UCHAR)6)
|
|
#define SMBIOS_ONBOARD_DEVICE_TYPE_SOUND ((UCHAR)7)
|
|
#define SMBIOS_ONBOARD_DEVICE_TYPE_PATA ((UCHAR)8)
|
|
#define SMBIOS_ONBOARD_DEVICE_TYPE_SATA ((UCHAR)9)
|
|
#define SMBIOS_ONBOARD_DEVICE_TYPE_SAS ((UCHAR)10)
|
|
#define SMBIOS_ONBOARD_DEVICE_TYPE_WIRELESS_LAN ((UCHAR)11)
|
|
#define SMBIOS_ONBOARD_DEVICE_TYPE_BLUETOOTH ((UCHAR)12)
|
|
#define SMBIOS_ONBOARD_DEVICE_TYPE_WWAN ((UCHAR)13)
|
|
#define SMBIOS_ONBOARD_DEVICE_TYPE_EMMC ((UCHAR)14)
|
|
#define SMBIOS_ONBOARD_DEIVCE_TYPE_NVME ((UCHAR)15)
|
|
#define SMBIOS_ONBOARD_DEVICE_TYPE_UFS ((UCHAR)16)
|
|
|
|
//
|
|
// Management Controller Host Interface (Type 42)
|
|
//
|
|
|
|
#define SMBIOS_MCHI_INFORMATION_TYPE ((UCHAR)42)
|
|
|
|
typedef struct _SMBIOS_MCHI_INFORMATION
|
|
{
|
|
SMBIOS_HEADER Header;
|
|
// 2.6+
|
|
UCHAR Type; // SMBIOS_MCHI_TYPE_*
|
|
UCHAR Length;
|
|
UCHAR Data[ANYSIZE_ARRAY];
|
|
// SMBIOS_MCHI_PROTOCOL_RECORDS
|
|
} SMBIOS_MCHI_INFORMATION, *PSMBIOS_MCHI_INFORMATION;
|
|
|
|
C_ASSERT(sizeof(SMBIOS_MCHI_INFORMATION) == 0x7);
|
|
|
|
typedef struct _SMBIOS_MCHI_PROTOCOL_RECORD
|
|
{
|
|
UCHAR Type; // SMBIOS_MCHI_PROTOCOL_TYPE_*
|
|
UCHAR Length;
|
|
UCHAR Data[ANYSIZE_ARRAY];
|
|
} SMBIOS_MCHI_PROTOCOL_RECORD, *PSMBIOS_MCHI_PROTOCOL_RECORD;
|
|
|
|
C_ASSERT(sizeof(SMBIOS_MCHI_PROTOCOL_RECORD) == 0x3);
|
|
|
|
typedef struct _SMBIOS_MCHI_PROTOCOL_RECORDS
|
|
{
|
|
UCHAR Count;
|
|
SMBIOS_MCHI_PROTOCOL_RECORD Records[ANYSIZE_ARRAY];
|
|
} SMBIOS_MCHI_PROTOCOL_RECORDS, *PSMBIOS_MCHI_PROTOCOL_RECORDS;
|
|
|
|
C_ASSERT(sizeof(SMBIOS_MCHI_PROTOCOL_RECORDS) == 0x4);
|
|
|
|
// 0-63 MCTP host interfaces
|
|
#define SMBIOS_MCHI_TYPE_NETWORK_INTERFACE ((UCHAR)64)
|
|
#define SMBIOS_MCHI_TYPE_OEM_DEFINED ((UCHAR)240)
|
|
|
|
#define SMBIOS_MCHI_PROTOCOL_TYPE_RESERVED_0 ((UCHAR)0)
|
|
#define SMBIOS_MCHI_PROTOCOL_TYPE_RESERVED_1 ((UCHAR)1)
|
|
#define SMBIOS_MCHI_PROTOCOL_TYPE_IPMI ((UCHAR)2)
|
|
#define SMBIOS_MCHI_PROTOCOL_TYPE_MCTP ((UCHAR)3)
|
|
#define SMBIOS_MCHI_PROTOCOL_TYPE_REFRESH_OVER_IP ((UCHAR)4)
|
|
#define SMBIOS_MCHI_PROTOCOL_TYPE_OEM_DEFINED ((UCHAR)240)
|
|
|
|
//
|
|
// TPM Device (Type 43)
|
|
//
|
|
|
|
#define SMBIOS_TPM_DEVICE_INFORMATION_TYPE ((UCHAR)43)
|
|
|
|
typedef struct _SMBIOS_TPM_DEVICE_INFORMATION
|
|
{
|
|
SMBIOS_HEADER Header;
|
|
// 2.6+
|
|
UCHAR VendorID[4];
|
|
UCHAR MajorSpecVersion;
|
|
UCHAR MinorSpecVersion;
|
|
ULONG FirmwareVersion1;
|
|
ULONG FirmwareVersion2;
|
|
UCHAR Description; // string
|
|
ULONGLONG Characteristics; // SMBIOS_TPM_DEVICE_*
|
|
ULONG OEMDefined;
|
|
} SMBIOS_TPM_DEVICE_INFORMATION, *PSMBIOS_TPM_DEVICE_INFORMATION;
|
|
|
|
C_ASSERT(sizeof(SMBIOS_TPM_DEVICE_INFORMATION) == 0x1F);
|
|
|
|
#define SMBIOS_TPM_DEVICE_RESERVED_0 0x0000000000000001ULL
|
|
#define SMBIOS_TPM_DEVICE_RESERVED_1 0x0000000000000002ULL
|
|
#define SMBIOS_TPM_DEVICE_CONFIGURABLE_VIA_FIRMWARE_UPDATE 0x0000000000000004ULL
|
|
#define SMBIOS_TPM_DEVICE_CONFIGURABLE_VIA_SOFTWARE_UPDATE 0x0000000000000008ULL
|
|
#define SMBIOS_TPM_DEVICE_CONFIGURABLE_VIA_PROPRIETARY_UPDATE 0x0000000000000010ULL
|
|
#define SMBIOS_TPM_DEIVCE_RESERVED 0xFFFFFFFFFFFFFFE0ULL
|
|
|
|
//
|
|
// Processor Additional Information (Type 44)
|
|
//
|
|
|
|
#define SMBIOS_PROCESSOR_ADDITIONAL_INFORMATION_TYPE ((UCHAR)44)
|
|
|
|
typedef struct _SMBIOS_PROCESSOR_SPECIFIC_BLOCK
|
|
{
|
|
UCHAR Length;
|
|
UCHAR Type; // SMBIOS_PROCESSOR_ARCHITECTURE_TYPE_*
|
|
UCHAR Data[ANYSIZE_ARRAY];
|
|
} SMBIOS_PROCESSOR_SPECIFIC_BLOCK, *PSMBIOS_PROCESSOR_SPECIFIC_BLOCK;
|
|
|
|
C_ASSERT(sizeof(SMBIOS_PROCESSOR_SPECIFIC_BLOCK) == 0x3);
|
|
|
|
typedef struct _SMBIOS_PROCESSOR_ADDITIONAL_INFORMATION
|
|
{
|
|
SMBIOS_HEADER Header;
|
|
// 2.6+
|
|
USHORT Handle;
|
|
SMBIOS_PROCESSOR_SPECIFIC_BLOCK Blocks[ANYSIZE_ARRAY];
|
|
} SMBIOS_PROCESSOR_ADDITIONAL_INFORMATION, *PSMBIOS_PROCESSOR_ADDITIONAL_INFORMATION;
|
|
|
|
C_ASSERT(sizeof(SMBIOS_PROCESSOR_ADDITIONAL_INFORMATION) == 0x9);
|
|
|
|
#define SMBIOS_PROCESSOR_ARCHITECTURE_TYPE_X86 ((UCHAR)1)
|
|
#define SMBIOS_PROCESSOR_ARCHITECTURE_TYPE_X64 ((UCHAR)2)
|
|
#define SMBIOS_PROCESSOR_ARCHITECTURE_TYPE_IA64 ((UCHAR)3)
|
|
#define SMBIOS_PROCESSOR_ARCHITECTURE_TYPE_ARM32 ((UCHAR)4)
|
|
#define SMBIOS_PROCESSOR_ARCHITECTURE_TYPE_ARM64 ((UCHAR)5)
|
|
#define SMBIOS_PROCESSOR_ARCHITECTURE_TYPE_RISCV32 ((UCHAR)6)
|
|
#define SMBIOS_PROCESSOR_ARCHITECTURE_TYPE_RISCV64 ((UCHAR)7)
|
|
#define SMBIOS_PROCESSOR_ARCHITECTURE_TYPE_RISCV128 ((UCHAR)8)
|
|
#define SMBIOS_PROCESSOR_ARCHITECTURE_TYPE_LOONGARCH32 ((UCHAR)9)
|
|
#define SMBIOS_PROCESSOR_ARCHITECTURE_TYPE_LOONGARCH64 ((UCHAR)10)
|
|
|
|
//
|
|
// Firmware Inventory Information (Type 45)
|
|
//
|
|
|
|
#define SMBIOS_FIRMWARE_INVENTORY_INFORMATION_TYPE ((UCHAR)45)
|
|
|
|
typedef struct _SMBIOS_FIRMWARE_INVENTORY_INFORMATION
|
|
{
|
|
SMBIOS_HEADER Header;
|
|
// 3.5+
|
|
UCHAR ComponentName; // string
|
|
UCHAR Version; // string
|
|
UCHAR VersionFormat;
|
|
UCHAR Identifier; // string
|
|
UCHAR IdentifierFormat;
|
|
UCHAR ReleaseDate; // string
|
|
UCHAR Manufacturer; // string
|
|
UCHAR LowestSupportedVersion; // string
|
|
ULONGLONG ImageSize;
|
|
USHORT Characteristics; // SMBIOS_FIRMWARE_INVENTORY_FLAG_*
|
|
UCHAR State; // SMBIOS_FIRMWARE_INVENTORY_STATE_*
|
|
UCHAR AssociatedComponents;
|
|
USHORT AssociatedComponentHandles[ANYSIZE_ARRAY];
|
|
} SMBIOS_FIRMWARE_INVENTORY_INFORMATION, *PSMBIOS_FIRMWARE_INVENTORY_INFORMATION;
|
|
|
|
C_ASSERT(sizeof(SMBIOS_FIRMWARE_INVENTORY_INFORMATION) == 0x1A);
|
|
|
|
#define SMBIOS_FIRMWARE_INVENTORY_FLAG_UPDATABLE 0x00000001UL
|
|
#define SMBIOS_FIRMWARE_INVENTORY_FLAG_WRITE_PROTECTED 0x00000002UL
|
|
#define SMBIOS_FIRMWARE_INVENTORY_FLAG_RESERVED 0xFFFFFFFCUL
|
|
|
|
#define SMBIOS_FIRMWARE_INVENTORY_STATE_OTHER ((UCHAR)1)
|
|
#define SMBIOS_FIRMWARE_INVENTORY_STATE_UNKNOWN ((UCHAR)2)
|
|
#define SMBIOS_FIRMWARE_INVENTORY_STATE_DISABLED ((UCHAR)3)
|
|
#define SMBIOS_FIRMWARE_INVENTORY_STATE_ENABLED ((UCHAR)4)
|
|
#define SMBIOS_FIRMWARE_INVENTORY_STATE_ABSENT ((UCHAR)5)
|
|
#define SMBIOS_FIRMWARE_INVENTORY_STATE_STANDBY_OFFLINE ((UCHAR)6)
|
|
#define SMBIOS_FIRMWARE_INVENTORY_STATE_STANDBY_SPARE ((UCHAR)7)
|
|
#define SMBIOS_FIRMWARE_INVENTORY_STATE_OFFLINE ((UCHAR)8)
|
|
|
|
//
|
|
// String Property (Type 46)
|
|
//
|
|
|
|
#define SMBIOS_STRING_PROPERTY_TYPE ((UCHAR)46)
|
|
|
|
typedef struct _SMBIOS_STRING_PROPERTY
|
|
{
|
|
SMBIOS_HEADER Header;
|
|
// 3.5+
|
|
USHORT Identifier; // SMBIOS_STRING_PROPERTY_ID_*
|
|
UCHAR String; // string
|
|
USHORT ParentHandle;
|
|
} SMBIOS_STRING_PROPERTY, *PSMBIOS_STRING_PROPERTY;
|
|
|
|
C_ASSERT(sizeof(SMBIOS_STRING_PROPERTY) == 0x9);
|
|
|
|
#define SMBIOS_STRING_PROPERTY_ID_RESERVED ((UCHAR)1)
|
|
#define SMBIOS_STRING_PROPERTY_ID_UEIF_DEVICE_PATH ((UCHAR)2)
|
|
|
|
//
|
|
// Inactive (Type 126)
|
|
//
|
|
|
|
#define SMBIOS_INACTIVE_TYPE ((UCHAR)126)
|
|
|
|
typedef struct _SMBIOS_INACTIVE
|
|
{
|
|
SMBIOS_HEADER Header;
|
|
} SMBIOS_INACTIVE, *PSMBIOS_INACTIVE;
|
|
|
|
C_ASSERT(sizeof(SMBIOS_INACTIVE) == 0x4);
|
|
|
|
//
|
|
// End-of-Table (Type 127)
|
|
//
|
|
|
|
#define SMBIOS_END_OF_TABLE_TYPE ((UCHAR)127)
|
|
|
|
typedef struct _SMBIOS_END_OF_TABLE
|
|
{
|
|
SMBIOS_HEADER Header;
|
|
} SMBIOS_END_OF_TABLE, *PSMBIOS_END_OF_TABLE;
|
|
|
|
C_ASSERT(sizeof(SMBIOS_END_OF_TABLE) == 0x4);
|
|
|
|
#include <poppack.h>
|
|
|
|
#endif
|