home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Chip 2004 February
/
Chip_2004-02_cd1.bin
/
zkuste
/
konfig
/
download
/
msic
/
Help
/
Int
/
MSI_SMBIOS.int
< prev
next >
Wrap
Text File
|
2003-10-10
|
25KB
|
545 lines
{*******************************************************}
{ }
{ MiTeC System Information Component }
{ SMBIOS Detection Part }
{ version 8.4 for Delphi 5,6,7 }
{ }
{ Copyright ⌐ 1997,2003 Michal Mutl }
{ }
{*******************************************************}
{$INCLUDE MITEC_DEF.INC}
unit MSI_SMBIOS;
interface
uses MSI_Common, Windows, Classes, SysUtils, MSI_DMA;
const
addr_BIOSBegin = $000F0000;
addr_BIOSEnd = $000FFFFF;
const
SMB_BIOSINFO = 0 ; // BIOS Information
SMB_SYSINFO = 1 ; // System Information
SMB_BASEINFO = 2 ; // Base Board Information
SMB_SYSENC = 3 ; // System Enclosure or Chassis
SMB_CPU = 4 ; // Processor Information
SMB_MEMCTRL = 5 ; // Memory Controller Information
SMB_MEMMOD = 6 ; // Memory Module Information
SMB_CACHE = 7 ; // Cache Information
SMB_PORTCON = 8 ; // Port Connector Information
SMB_SLOTS = 9 ; // System Slots
SMB_ONBOARD = 10 ; // On Board Devices Information
SMB_OEMSTR = 11 ; // OEM Strings
SMB_SYSCFG = 12 ; // System Configuration Options
SMB_LANG = 13 ; // BIOS Language Information
SMB_GRP = 14 ; // Group Associations
SMB_EVENT = 15 ; // System Event Log
SMB_PHYSMEM = 16 ; // Physical Memory Array
SMB_MEMDEV = 17 ; // Memory Device
SMB_MEMERR32 = 18 ; // 32-bit Memory Error Information
SMB_MEMMAP = 19 ; // Memory Array Mapped Address
SMB_MEMDEVMAP= 20 ; // Memory Device Mapped Address
SMB_POINTER = 21 ; // Built-in Pointing Device
SMB_BATTERY = 22 ; // Portable Battery
SMB_RESET = 23 ; // System Reset
SMB_SECURITY = 24 ; // Hardware Security
SMB_POWER = 25 ; // System Power Controls
SMB_VOLTAGE = 26 ; // Voltage Probe
SMB_COOL = 27 ; // Cooling Device
SMB_TEMP = 28 ; // Tempature Probe
SMB_CURRENT = 29 ; // Electrical Current Probe
SMB_OOBREM = 30 ; // Out-of-Band Remote Access
SMB_BIS = 31 ; // Boot Integrity Services (BIS) Entry Point
SMB_SYSBOOT = 32 ; // System Boot Information
SMB_MEMERR64 = 33 ; // 64-bit Memory Error Information
SMB_MGT = 34 ; // Management Device
SMB_MGTCMP = 35 ; // Management Device Component
SMB_MGTTHR = 36 ; // Management Device Threshold Data
SMB_MEMCHAN = 37 ; // Memory Channel
SMB_IPMI = 38 ; // IPMI Device Information
SMB_SPS = 39 ; // System Power Supply
SMB_INACTIVE = 126 ; // Inactive
SMB_EOT = 127 ; // End-of-Table
SMB_TableTypes: array[0..41] of record Typ: Byte; Name: string end = (
(Typ: SMB_BIOSINFO; Name: 'BIOS Information'),
(Typ: SMB_SYSINFO; Name: 'System Information'),
(Typ: SMB_BASEINFO; Name: 'Base Board Information'),
(Typ: SMB_SYSENC; Name: 'System Enclosure or Chassis'),
(Typ: SMB_CPU; Name: 'Processor Information'),
(Typ: SMB_MEMCTRL; Name: 'Memory Controller Information'),
(Typ: SMB_MEMMOD; Name: 'Memory Module Information'),
(Typ: SMB_CACHE; Name: 'Cache Information'),
(Typ: SMB_PORTCON; Name: 'Port Connector Information'),
(Typ: SMB_SLOTS; Name: 'System Slots'),
(Typ: SMB_ONBOARD; Name: 'On Board Devices Information'),
(Typ: SMB_OEMSTR; Name: 'OEM Strings'),
(Typ: SMB_SYSCFG; Name: 'System Configuration Options'),
(Typ: SMB_LANG; Name: 'BIOS Language Information'),
(Typ: SMB_GRP; Name: 'Group Associations'),
(Typ: SMB_EVENT; Name: 'System Event Log'),
(Typ: SMB_PHYSMEM; Name: 'Physical Memory Array'),
(Typ: SMB_MEMDEV; Name: 'Memory Device'),
(Typ: SMB_MEMERR32; Name: '32-bit Memory Error Information'),
(Typ: SMB_MEMMAP; Name: 'Memory Array Mapped Address'),
(Typ: SMB_MEMDEVMAP; Name: 'Memory Device Mapped Address'),
(Typ: SMB_POINTER; Name: 'Built-in Pointing Device'),
(Typ: SMB_BATTERY; Name: 'Portable Battery'),
(Typ: SMB_RESET; Name: 'System Reset'),
(Typ: SMB_SECURITY; Name: ' Hardware Security'),
(Typ: SMB_POWER; Name: 'System Power Controls'),
(Typ: SMB_VOLTAGE; Name: 'Voltage Probe'),
(Typ: SMB_COOL; Name: ' Cooling Device'),
(Typ: SMB_TEMP; Name: 'Temperature Probe'),
(Typ: SMB_CURRENT; Name: 'Electrical Current Probe'),
(Typ: SMB_OOBREM; Name: 'Out-of-Band Remote Access'),
(Typ: SMB_BIS; Name: 'Boot Integrity Services (BIS) Entry Point'),
(Typ: SMB_SYSBOOT; Name: 'System Boot Information'),
(Typ: SMB_MEMERR64; Name: '64-bit Memory Error Information'),
(Typ: SMB_MGT; Name: 'Management Device'),
(Typ: SMB_MGTCMP; Name: 'Management Device Component'),
(Typ: SMB_MGTTHR; Name: 'Management Device Threshold Data'),
(Typ: SMB_MEMCHAN; Name: 'Memory Channel'),
(Typ: SMB_IPMI; Name: 'IPMI Device Information'),
(Typ: SMB_SPS; Name: 'System Power Supply'),
(Typ: SMB_INACTIVE; Name: 'Inactive'),
(Typ: SMB_EOT; Name: 'End-of-Table'));
type
TStructTable = record
Address: DWORD;
Indicator: Byte;
Length: Byte;
Handle: Word;
Name: shortstring;
end;
TStructTables = array of TStructTable;
TChassis = (smchOther, smchUnknown, smchDesktop, smchLowProfileDesktop, smchPizzaBox,
smchMiniTower, smchTower, smchPortable, smchLapTop, smchNotebook, smchHandHeld,
smchDockingStation, smchAllInOne, smchSubNotebook, smchSpaceSaving, smchLunchBox,
smchMainServer, smchExpansion, smchSubChassis, smchBusExpansion, smchPeripheral,
smchRAID, smchRackMount, smchSealedCasePC, smchMultiSystem);
TInterleaveSupport = (smisOther, smisUnknown, smisOnewWay, smisTwoWay, smisFourWay, smisEightWay, smisSixteenWay);
TVoltage = (smv5V, smv33V, smv29V);
TVoltages = set of TVoltage;
TMemorySpeed = (smmsOther, smmsUnknown, smms70ns, smms60ns, smms50ns);
TMemorySpeeds = set of TMemorySpeed;
TMemoryType = (smmtOther, smmtUnknown, smmtStandard, smmtFastPageMode, smmtEDO,
smmtParity, smmtECC, smmtSIMM, smmtDIMM, smmtBurstEDO, smmtSDRAM);
TMemoryTypes = set of TMemoryType;
TMemoryFormFactor = (smffOther, smffUnknown, smffSIMM, smffSIP,
smffChip, smffDIP, smffZIP, smffPropCard, smffDIMM, smffTSOP,
smffRowChip, smffRIMM, smffSODIMM, smffSRIMM);
TMemoryDeviceType = (smmdOther, smmdUnknown, smmdDRAM, smmdEDRAM, smmdVRAM, smmdSRAM,
smmdRAM,smmdROM, smmdFLASH, smmdEEPROM, smmdFEPROM, smmdEPROM,
smmdCDRAM, smmd3DRAM, smmdSDRAM, smmdSGRAM, smmdRDRAM, smmdDDR);
TMemoryTypeDetail = (mtdReserved, mtdOther, mtdUnknown, mtdFastPaged, mtdStaticColumn,
mtdPseudoStatic, mtdRAMBUS, mtdSynchronous, mtdCMOS, mtdEDO,
mtdWindowDRAM, mtdCacheDRAM, mtdNonVolatile);
TMemoryTypeDetails = set of TMemoryTypeDetail;
TUpgrade = (smuOther, smuUnknown, smuDaughterBoard, smuZIFSocket, smuReplaceablePiggyBack,
smuNone, smuLIFSocket, smuSlot1, smuSlot2, smu370pinSocket, smuSlotA,
smuSlotM, smuSocket423, smuSocketA, smuSocket478, smuSocket754, smuSocket940);
TProcessor = record
Socket,
Manufacturer,
Version: shortstring;
Upgrade: TUpgrade;
Voltage: double;
Frequency,
ExternalClock: WORD;
SerialNumber,
AssetTag,
PartNumber: shortstring;
end;
TMemoryModule = record
Socket: shortstring;
Speed: Word;
Size: DWORD;
Types: TMemoryTypes;
end;
TMemoryDevice = record
TotalWidth,
DataWidth,
Size: Word;
FormFactor: TMemoryFormFactor;
DeviceLocator,
BankLocator: ShortString;
Device: TMemoryDeviceType;
TypeDetails: TMemoryTypeDetails;
Speed: Word;
Manufacturer,
SerialNumber,
AssetTag,
PartNumber: ShortString;
end;
TConnectorType = (smctNone, smctCentronics, smctMiniCentronics, smctProprietary,
smctDB25PinMale, smctDB25PinFemale, smctDB15PinMale, smctDB15PinFemale,
smctDB9PinMale, smctDB9PinFemale, smctRJ11, smctRJ45, smct50PinMiniSCSI,
smctMiniDIN, smctMicroDIN, smctPS2, smctInfrared, smctHPHIL,
smctAccessBus, smctSSASCSI, smctCircularDIN8Male, smctCircularDIN8Female,
smctOnBoardIDE, smctOnBoardFloppy, smct9PinDualInline, smct25PinDualInline,
smct50PinDualInline, smct68PinDualInline, smctOnBoardSoundInputFromCDROM,
smctMiniCentronicsType14, smctMiniCentronicsType26, smctMiniJack,
smctBNC, smct1394, smctPC98, smctPC98Hireso, smctPCH98, smctPC98Note,
smctPC98Full, smctOther);
TPortType = (smptNone, smptParallelXTAT, smptParallelPS2, smptParallelECP,
smptParallelEPP, smptParallelECPEPP, smptSerialXTAT,
smptSerial16450, smptSerial16550, smptSerial16550A,
smptSCSI, smptMIDI, smptJoyStick, smptKeyboard, smptMouse, smptSSASCSI,
smptUSB, smptFireWire, smptPCMCIA2, smptPCMCIA2A, smptPCMCIA3, smptCardbus,
smptAccessBus, smptSCSI2, smptSCSIWide, smptPC98, smptPC98Hireso, smptPCH98,
smptVideo, smptAudio, smptModem, smptNetwork, smpt8251, smpt8251FIFO, smptOther);
TPort = record
InternalDesignator,
ExternalDesignator: shortstring;
InternalConnector,
ExternalConnector: TConnectorType;
Typ: TPortType;
end;
TSlotType = (smstOther, smstUnknown, smstISA, smstMCA, smstEISA, smstPCI, smstPCMCIA,
smstVLVESA, smstProprietary, smstProcessorCard, smstProprietaryMemoryCard,
smstIORiserCard, smstNuBus, smstPCI66MHz, smstAGP, smstAGP2X, smstAGP4X,
smstPCIX, smstAGP8X,
smstPC98C20, smstPC98C24, smstPC98E, smstPC98LocalBus, smstPC98Card);
TDataBusType = (smdbOther, smdbUnknown, smdb8bit, smdb16bit, smdb32bit, smdb64bit, smdb128bit);
TSlotUsage = (smsuOther, smsuUnknown, smsuAvailable, smsuInUse);
TSlotLength = (smslOther, smslUnknown, smslShort, smslLong);
TSlot = record
Designation: shortstring;
Typ: TSlotType;
DataBus: TDataBusType;
ID: WORD;
Usage: TSlotUsage;
Length: TSlotLength;
end;
TSRAMType = (sramOther, sramUnknown, sramNonBurst, sramBurst,
sramPipelineBurst, sramSync, sramAsync);
TCacheType = (ctOther, ctUnknown, ctInstruction, ctData, ctUnified);
TCacheAssociativity = (caOther, caUnknown, caDirectMapped, ca2way, ca4way, caFull, ca8way, ca16way);
TCache = record
Designation: shortstring;
MaxSize, InstalledSize: Word;
SRAMType: TSRAMType;
Typ: TCacheType;
Associativity: TCacheAssociativity;
Speed: Word;
end;
TOnBoardDeviceType = (obdOther, obdUnknown, obdAudio, obdSCSICrl, obdEthernet, obdTokenRing, obdSound);
TOnBoardDevice = record
DeviceName: string;
Typ: TOnBoardDeviceType;
Status: boolean;
end;
TLocationType = (ltOther, ltUnknown, ltProcessor, ltDisk, ltPeripheralBay, ltSMM, ltMB,
ltProcessorModule, ltPowerUnit, ltAddInCard, ltFrontPanelBoard, ltBackPanelBoard,
ltPowerSystemBoard, ltDriveBackPlane);
TStatusType = (stOther, stUnknown, stOK, stNonCritical, stCritical, stNonRecoverable);
TTemperatureProbe = record
Description: shortstring;
Location: TLocationType;
Status: TStatusType;
Min,Max: Word;
Resolution,
Tolerance,
Accuracy: Word;
Value: Word;
end;
const
ChassisTypes: array[TChassis] of string = ('Other','Unknown','Desktop','Low Profile Desktop','Pizza Box',
'Mini Tower','Tower','Portable','LapTop','Notebook','Hand Held',
'Docking Station','All in One','SubNotebook','Space-Saving','Lunch Box',
'Main Server Chassis','Expansion Chassis','SubChassis','Bus Expansion Chassis','Peripheral Chassis',
'RAID Chassis','Rack-Mount Chassis','Sealed-case PC','Multi-system Chassis');
InterleaveSupports: array[TInterleaveSupport] of string = ('Other','Unknown','1-Way','2-Way','4-Way','8-Way','16-Way');
Voltages: array[TVoltage] of string = ('5V','3.3V','2.9V');
MemorySpeeds: array[TMemorySpeed] of string = ('Other','Unknown','70ns','60ns','50ns');
Upgrades: array[TUpgrade] of string = ('Other','Unknown','Daughter Board','ZIF Socket','Replaceable Piggy Back',
'None','LIF Socket','Slot 1','Slot 2','370-pin Socket','Slot A',
'Slot M','Socket 423', 'Socket A (Socket 462)','Socket 478','Socket 754','Socket 940');
MemoryFormFactors: array[TMemoryFormFactor] of string = ('Other','Unknown','SIMM','SIP',
'Chip','DIP','ZIP','PropCard','DIMM','TSOP','RowChip','RIMM','SODIMM','SRIMM');
MemoryDeviceTypes: array[TMemoryDeviceType] of string = ('Other','Unknown','DRAM','EDRAM',
'VRAM','SRAM','RAM','ROM','FLASH','EEPROM','FEPROM','EPROM','CDRAM','3DRAM','SDRAM',
'SGRAM','RDRAM','DDR');
MemoryTypes: array[TMemoryType] of string = ('Other','Unknown','Standard','Fast Page Mode','EDO',
'Parity','ECC','SIMM','DIMM','Burst EDO','SDRAM');
MemoryTypeDetails: array[TMemoryTypeDetail] of string = ('Reserved', 'Other', 'Unknown', 'FastPaged',
'StaticColumn', 'PseudoStatic', 'RAMBUS', 'Synchronous', 'CMOS', 'EDO',
'WindowDRAM', 'CacheDRAM', 'NonVolatile');
ConnectorTypes: array[TConnectorType] of string = (
'None','Centronics','Mini Centronics','Proprietary','DB-25 pin male','DB-25 pin female',
'DB-15 pin male','DB-15 pin female','DB-9 pin male','DB-9 pin female','RJ-11','RJ-45',
'50 Pin MiniSCSI','Mini-DIN','Micro-DIN','PS/2','Infrared','HP-HIL','Access Bus (USB)',
'SSA SCSI','Circular DIN-8 male','Circular DIN-8 female','On Board IDE','On Board Floppy',
'9 Pin Dual Inline (pin 10 cut)','25 Pin Dual Inline (pin 26 cut)','50 Pin Dual Inline',
'68 Pin Dual Inline','On Board Sound Input from CD-ROM','Mini-Centronics Type-14',
'Mini-Centronics Type-26','Mini-jack (headphones)','BNC','1394','PC-98','PC-98Hireso',
'PC-H98','PC-98Note','PC-98Full','Other'
);
PortTypes: array[TPortType] of string = (
'None','Parallel Port XT/AT Compatible','Parallel Port PS/2','Parallel Port ECP',
'Parallel Port EPP','Parallel Port ECP/EPP','Serial Port XT/AT Compatible',
'Serial Port 16450 Compatible','Serial Port 16550 Compatible','Serial Port 16550A Compatible',
'SCSI Port','MIDI Port','Joy Stick Port','Keyboard Port','Mouse Port','SSA SCSI',
'USB','FireWire (IEEE P1394)','PCMCIA Type II','PCMCIA Type II','PCMCIA Type III',
'Cardbus','Access Bus Port','SCSI II','SCSI Wide','PC-98','PC-98-Hireso','PC-H98',
'Video Port','Audio Port','Modem Port','Network Port','8251 Compatible',
'8251 FIFO Compatible','Other'
);
SlotTypes: array[TSlotType] of string = (
'Other','Unknown','ISA','MCA','EISA','PCI','PC Card (PCMCIA)','VL-VESA','Proprietary',
'Processor Card Slot','Proprietary Memory Card','I/O Riser Card Slot','NuBus',
'PCI - 66MHz Capable','AGP','AGP 2X','AGP 4X','PCI-X','AGP 8X', 'PC-98/C20','PC-98/C24','PC-98/E',
'PC-98/Local Bus','PC-98/Card'
);
DataBusTypes: array[TDataBusType] of string = (
'Other','Unknown','8 bit','16 bit','32 bit','64 bit','128 bit'
);
SlotUsages: array[TSlotUsage] of string = ('Other','Unknown','Available','InUse');
SlotLengths: array[TSlotLength] of string = ('Other','Unknown','Short','Long');
SRAMTypes: array[TSRAMType] of string = (
'Other', 'Unknown','Non-Burst','Burst','Pipeline Burst','Synchronous','Asynchronous'
);
CacheTypes: array[TCacheType] of string = (
'Other','Unknown','Instruction','Data','Unified'
);
CacheAssociativities: array[TCacheAssociativity] of string = (
'Other','Unknown','Direct Mapped','2-way Set-Associative','4-way Set-Associative','Fully Associative',
'8-way Set-Associative','16-way Set-Associative'
);
OnBoardDeviceTypes: array[TOnBoardDeviceType] of string = (
'Other', 'Unknown', 'Audio', 'SCSICrl', 'Ethernet', 'TokenRing', 'Sound');
LocationTypes: array[TLocationType] of string = ('Other', 'Unknown', 'Processor', 'Disk', 'Peripheral Bay',
'System Managemeht Module', 'Motherboard', 'Processor Module', 'Power Unit', 'Add-In Card', 'Front Panel Board',
'Back Panel Board', 'Power System Board', 'Drive Back Plane');
StatusTypes: array[TStatusType] of string = ('Other', 'Unknown', 'OK', 'Non-Critical', 'Critical', 'Non-Recoverable');
type
TSMBIOS = class(TPersistent)
private
FSMBIOS, FStructure: TDMA;
FStart,
FStructStart: DWORD;
FMBMod: string;
FSysMan: string;
FSysMod: string;
FBIOSdate: string;
FVersion: string;
FBIOSVendor: string;
FBIOSVersion: string;
FBIOSSize: DWORD;
FSysVer: string;
FSysSN: string;
FMBSN: string;
FMBMan: string;
FMBVer: string;
FCHSN: string;
FCHVer: string;
FCHMan: string;
FCHMod: TChassis;
FSysUUID: string;
FProc: array of TProcessor;
FMemMod: array of TMemoryModule;
FMemDev: array of TMemoryDevice;
FPort: array of TPort;
FSlot: array of TSlot;
FCache: array of TCache;
FOBD: array of TOnBoardDevice;
FTP: array of TTemperatureProbe;
FTableCount: WORD;
FLen: WORD;
FRevision: string;
{$IFNDEF D6PLUS}
FDummy: Byte;
{$ENDIF}
FMCSC: Byte;
FMCCI: TInterleaveSupport;
FMCSI: TInterleaveSupport;
FMCSS: TMemorySpeeds;
FMCST: TMemoryTypes;
FMCSV: TVoltages;
FMCMS: WORD;
FCHAT: string;
FMajorVersion: Byte;
FMinorVersion: Byte;
FMBAT: string;
FMBLIC: string;
FModes: TExceptionModes;
procedure ScanTables;
procedure AddTable(Addr: DWORD; Ind,Len: Byte; Hndl: Word; var ST: TStructTables);
function GetMemoryModule(Index: Byte): TMemoryModule;
function GetMemModCount: Byte;
function GetPort(Index: Byte): TPort;
function GetPortCount: Byte;
function GetSlot(Index: Byte): TSlot;
function GetSlotCount: Byte;
function GetCache(Index: Byte): TCache;
function GetCacheCount: Byte;
function GetProc(Index: Byte): TProcessor;
function GetProcCount: Byte;
function GetOBDCount: Byte;
function GetOBD(Index: Byte): TOnBoardDevice;
function GetTempProbe(Index: Byte): TTemperatureProbe;
function GetTempProbeCount: Byte;
procedure SetMode(const Value: TExceptionModes);
function GetMemoryDevice(Index: Byte): TMemoryDevice;
function GetMemDevCount: Byte;
public
StructTables: TStructTables;
constructor Create;
destructor Destroy; override;
procedure GetInfo(Local: DWORD = 1);
procedure Report(var sl: TStringList; Standalone: Boolean = True); virtual;
function GetMemoryTypeStr(Value: TMemoryTypes): string;
function GetMemorySpeedStr(Value: TMemorySpeeds): string;
function GetMemoryVoltageStr(Value: TVoltages): string;
function GetMemoryTypeDetailsStr(Value: TMemoryTypeDetails): string;
function FindTableRecord(AType: Byte; ST: TStructTables; From: DWORD = 0): TStructTable;
function FindTableIndex(AType: Byte; ST: TStructTables; From: DWORD = 0): Integer;
procedure LoadSMBIOSFromFile(Filename: string);
property BIOS_DMA: TDMA read FSMBIOS;
property SMBIOS_DMA: TDMA read FStructure;
property MajorVersion :Byte read FMajorVersion;
property MinorVersion :Byte read FMinorVersion;
property Version: string read FVersion;
property Revision: string read FRevision;
property SMBIOSAddress: DWORD read FStart;
property StructStart: DWORD read FStructStart;
property StructLength: WORD read FLen;
property StructCount: WORD read FTableCount;
property Processor[Index: Byte]: TProcessor read GetProc;
property MemoryModule[Index: Byte]: TMemoryModule read GetMemoryModule;
property MemoryDevice[Index: Byte]: TMemoryDevice read GetMemoryDevice;
property Port[Index: Byte]: TPort read GetPort;
property SystemSlot[Index: Byte]: TSlot read GetSlot;
property Cache[Index: Byte]: TCache read GetCache;
property OnBoardDevice[Index: Byte]: TOnBoardDevice read GetOBD;
property TemperatureProbe[Index: Byte]: TTemperatureProbe read GetTempProbe;
published
property ExceptionModes: TExceptionModes read FModes Write SetMode;
property SystemModel: string read FSysMod {$IFNDEF D6PLUS} write FSysMod {$ENDIF} stored False;
property SystemManufacturer: string read FSysMan {$IFNDEF D6PLUS} write FSysMan {$ENDIF} stored False;
property SystemVersion: string read FSysVer {$IFNDEF D6PLUS} write FSysVer {$ENDIF} stored False;
property SystemSerial: string read FSysSN {$IFNDEF D6PLUS} write FSysSN {$ENDIF} stored False;
property SystemUUID: string read FSysUUID {$IFNDEF D6PLUS} write FSysUUID {$ENDIF} stored False;
property BIOSVendor: string read FBIOSVendor {$IFNDEF D6PLUS} write FBIOSVendor {$ENDIF} stored False;
property BIOSVersion: string read FBIOSVersion {$IFNDEF D6PLUS} write FBIOSVersion {$ENDIF} stored False;
property BIOSDate: string read FBIOSdate {$IFNDEF D6PLUS} write FBIOSDate {$ENDIF} stored False;
property BIOSSize: DWORD read FBIOSSize {$IFNDEF D6PLUS} write FBIOSSize {$ENDIF} stored False;
property MainBoardModel: string read FMBMod {$IFNDEF D6PLUS} write FMBMod {$ENDIF} stored False;
property MainBoardManufacturer: string read FMBMan {$IFNDEF D6PLUS} write FMBMan {$ENDIF} stored False;
property MainBoardVersion: string read FMBVer {$IFNDEF D6PLUS} write FMBVer {$ENDIF} stored False;
property MainBoardSerial: string read FMBSN {$IFNDEF D6PLUS} write FMBSN {$ENDIF} stored False;
property MainBoardAssetTag: string read FMBAT {$IFNDEF D6PLUS} write FMBAT {$ENDIF} stored False;
property MainBoardLocationInChassis: string read FMBLIC {$IFNDEF D6PLUS} write FMBLIC {$ENDIF} stored False;
property ChassisModel: TChassis read FCHMod {$IFNDEF D6PLUS} write FCHMod {$ENDIF} stored False;
property ChassisManufacturer: string read FCHMan {$IFNDEF D6PLUS} write FCHMan {$ENDIF} stored False;
property ChassisVersion: string read FCHVer {$IFNDEF D6PLUS} write FCHVer {$ENDIF} stored False;
property ChassisSerial: string read FCHSN {$IFNDEF D6PLUS} write FCHSN {$ENDIF} stored False;
property ChassisAssetTag: string read FCHAT {$IFNDEF D6PLUS} write FCHAT {$ENDIF} stored False;
property MemCtrlCurrentInterleave: TInterleaveSupport read FMCCI {$IFNDEF D6PLUS} write FMCCI {$ENDIF} stored False;
property MemCtrlSupportedInterleave: TInterleaveSupport read FMCSI {$IFNDEF D6PLUS} write FMCSI {$ENDIF} stored False;
property MemCtrlSupportedSpeeds: TMemorySpeeds read FMCSS {$IFNDEF D6PLUS} write FMCSS {$ENDIF} stored False;
property MemCtrlSupportedTypes: TMemoryTypes read FMCST {$IFNDEF D6PLUS} write FMCST {$ENDIF} stored False;
property MemCtrlSupportedVoltages: TVoltages read FMCSV {$IFNDEF D6PLUS} write FMCSV {$ENDIF} stored False;
property MemCtrlMaxSize: WORD read FMCMS {$IFNDEF D6PLUS} write FMCMS {$ENDIF} stored False;
property MemCtrlSlotCount: Byte read FMCSC {$IFNDEF D6PLUS} write FMCSC {$ENDIF} stored False;
property ProcessorCount: Byte read GetProcCount {$IFNDEF D6PLUS} write FDummy {$ENDIF} stored False;
property MemoryModuleCount: Byte read GetMemModCount {$IFNDEF D6PLUS} write FDummy {$ENDIF} stored False;
property MemoryDeviceCount: Byte read GetMemDevCount {$IFNDEF D6PLUS} write FDummy {$ENDIF} stored False;
property PortCount: Byte read GetPortCount {$IFNDEF D6PLUS} write FDummy {$ENDIF} stored False;
property SystemSlotCount: Byte read GetSlotCount {$IFNDEF D6PLUS} write FDummy {$ENDIF} stored False;
property CacheCount: Byte read GetCacheCount {$IFNDEF D6PLUS} write FDummy {$ENDIF} stored False;
property OnBoardDeviceCount: Byte read GetOBDCount {$IFNDEF D6PLUS} write FDummy {$ENDIF} stored False;
property TemperatureProbeCount: Byte read GetTempProbeCount {$IFNDEF D6PLUS} write FDummy {$ENDIF} stored False;
end;
implementation