#ifndef _SMBIOS_H
#include <pshpack1.h>
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;
View code on GitHub
No description available.