// acpitabl.h
typedef struct _HMAT_ENTRY {
USHORT Type;
USHORT Reserved;
ULONG Length;
union {
struct {
union {
struct {
USHORT ProcessorProximityDomainValid : 1;
USHORT Reserved0 : 1;
USHORT Reserved1 : 1;
USHORT Reserved : 13;
} DUMMYSTRUCTNAME;
USHORT AsUSHort;
} Flags;
USHORT Reserved1;
ULONG ProcessorProximityDomain;
ULONG MemoryProximityDomain;
ULONG Reserved2;
ULONGLONG Reserved3;
ULONGLONG Reserved4;
} Msar;
struct {
union {
struct {
UCHAR MemoryHierarchy : 4;
UCHAR MinTransferSizeToAchieveValues : 1;
UCHAR NonSequentialTransfers : 1;
UCHAR Reserved : 2;
} DUMMYSTRUCTNAME;
UCHAR AsUChar;
} Flags;
UCHAR DataType;
UCHAR MinTransferSize;
UCHAR Reserved1;
ULONG NumberOfInitiatorProximityDomains;
ULONG NumberOfTargetProximityDomains;
ULONG Reserved2;
ULONGLONG EntryBaseUnit;
} Sllbi;
struct {
ULONG MemoryProximityDomain;
ULONG Reserved1;
ULONGLONG MemorySideCacheSize;
union {
struct {
ULONG TotalCacheLevels : 4;
ULONG CacheLevel : 4;
ULONG CacheAssociativity : 4;
ULONG WritePolicy : 4;
ULONG CacheLineSize : 16;
} DUMMYSTRUCTNAME;
ULONG AsULong;
} CacheAttributes;
USHORT Reserved2;
USHORT NumberOfSmBiosHandles;
} Msci;
} DUMMYUNIONNAME;
} HMAT_ENTRY, *PHMAT_ENTRY;
View the official Windows Driver Kit DDI referenceNo description available.
The HMAT_ENTRY structure contains the Heterogeneous Memory Attribute Table (HMAT) information for the table. The structure can contain one of three HMAT types: Memory Subsystem Address Range (MSAR), System Locality Latency and Bandwidth Information (SLLBI), or Memory Side Cache Information (MSCI).
TypeA USHORT value containing the HMAT table type.
ReservedReserved for future use.
LengthA ULONG value containing the size of the table.
DUMMYUNIONNAMEDefines the DUMMYUNIONNAME union.
DUMMYUNIONNAME.MsarDefines the Msar structure.
DUMMYUNIONNAME.Msar.FlagsDefines the Flags union.
DUMMYUNIONNAME.Msar.Flags.DUMMYSTRUCTNAMEDefines the DUMMYSTRUCTNAME structure.
DUMMYUNIONNAME.Msar.Flags.DUMMYSTRUCTNAME.ProcessorProximityDomainValidDefines the USHORT member ProcessorProximityDomainValid.
DUMMYUNIONNAME.Msar.Flags.DUMMYSTRUCTNAME.Reserved0Reserved for future use.
DUMMYUNIONNAME.Msar.Flags.DUMMYSTRUCTNAME.Reserved1Reserved for future use.
DUMMYUNIONNAME.Msar.Flags.DUMMYSTRUCTNAME.ReservedReserved for future use.
DUMMYUNIONNAME.Msar.Flags.AsUSHortDefines the USHORT member AsUSHort.
DUMMYUNIONNAME.Msar.Reserved1Reserved for future use.
DUMMYUNIONNAME.Msar.ProcessorProximityDomainDefines the ULONG member ProcessorProximityDomain.
DUMMYUNIONNAME.Msar.MemoryProximityDomainDefines the ULONG member MemoryProximityDomain.
DUMMYUNIONNAME.Msar.Reserved2Reserved for future use.
DUMMYUNIONNAME.Msar.Reserved3Reserved for future use.
DUMMYUNIONNAME.Msar.Reserved4Reserved for future use.
DUMMYUNIONNAME.SllbiDefines the Sllbi union.
DUMMYUNIONNAME.Sllbi.FlagsDefines the Flags union.
DUMMYUNIONNAME.Sllbi.Flags.DUMMYSTRUCTNAMEDefines the DUMMYSTRUCTNAME structure.
DUMMYUNIONNAME.Sllbi.Flags.DUMMYSTRUCTNAME.MemoryHierarchyDefines the UCHAR member MemoryHierarchy.
DUMMYUNIONNAME.Sllbi.Flags.DUMMYSTRUCTNAME.MinTransferSizeToAchieveValuesDefines the UCHAR member MinTransferSizeToAchieveValues.
DUMMYUNIONNAME.Sllbi.Flags.DUMMYSTRUCTNAME.NonSequentialTransfersDefines the UCHAR member NonSequentialTransfers.
DUMMYUNIONNAME.Sllbi.Flags.DUMMYSTRUCTNAME.ReservedReserved for future use.
DUMMYUNIONNAME.Sllbi.Flags.AsUCharDefines the UCHAR member AsUChar.
DUMMYUNIONNAME.Sllbi.DataTypeDefines the UCHAR member DataType.
DUMMYUNIONNAME.Sllbi.MinTransferSizeDefines the UCHAR member MinTransferSize.
DUMMYUNIONNAME.Sllbi.Reserved1Reserved for future use.
DUMMYUNIONNAME.Sllbi.NumberOfInitiatorProximityDomainsDefines the ULONG member NumberOfInitiatorProximityDomains.
DUMMYUNIONNAME.Sllbi.NumberOfTargetProximityDomainsDefines the ULONG member NumberOfTargetProximityDomains.
DUMMYUNIONNAME.Sllbi.Reserved2Reserved for future use.
DUMMYUNIONNAME.Sllbi.EntryBaseUnitDefines the ULONGLONG member EntryBaseUnit.
DUMMYUNIONNAME.MsciDefines the Msci union.
DUMMYUNIONNAME.Msci.MemoryProximityDomainDefines the ULONG member MemoryProximityDomain.
DUMMYUNIONNAME.Msci.Reserved1Reserved for future use.
DUMMYUNIONNAME.Msci.MemorySideCacheSizeDefines the ULONGLONG member MemorySideCacheSize.
DUMMYUNIONNAME.Msci.CacheAttributesDefines the CacheAttributes union.
DUMMYUNIONNAME.Msci.CacheAttributes.DUMMYSTRUCTNAMEDefines the DUMMYSTRUCTNAME structure.
DUMMYUNIONNAME.Msci.CacheAttributes.DUMMYSTRUCTNAME.TotalCacheLevelsDefines the ULONG member TotalCacheLevels.
DUMMYUNIONNAME.Msci.CacheAttributes.DUMMYSTRUCTNAME.CacheLevelDefines the ULONG member CacheLevel.
DUMMYUNIONNAME.Msci.CacheAttributes.DUMMYSTRUCTNAME.CacheAssociativityDefines the ULONG member CacheAssociativity.
DUMMYUNIONNAME.Msci.CacheAttributes.DUMMYSTRUCTNAME.WritePolicyDefines the ULONG member WritePolicy.
DUMMYUNIONNAME.Msci.CacheAttributes.DUMMYSTRUCTNAME.CacheLineSizeDefines the ULONG member CacheLineSize.
DUMMYUNIONNAME.Msci.CacheAttributes.AsULongDefines the ULONG member AsULong.
DUMMYUNIONNAME.Msci.Reserved2Reserved for future use.
DUMMYUNIONNAME.Msci.NumberOfSmBiosHandlesDefines the USHORT member NumberOfSmBiosHandles.