tsmbios
1.0.0
Le SMBIOS (System Management BIOS) est une norme développée par le DMTF. Les informations stockées dans le SMBIOS comprennent le fabricant d'appareils, le nom du modèle, le numéro de série, la version BIOS, la balise d'actif, les processeurs, les ports et la mémoire de l'appareil installé.
Le TSMBIOS Libary permet d'accéder au System Management BIOS (SMBIOS) en utilisant le langage d'objet Pascal (Delphi ou Free Pascal).
Ce code montre comment récupérer des informations liées aux périphériques de mémoire installés sur le système.
{ $APPTYPE CONSOLE }
{ $R *.res }
uses
Classes,
SysUtils,
uSMBIOS in ' ....CommonuSMBIOS.pas ' ;
procedure GetMemoryDeviceInfo ;
Var
SMBios: TSMBios;
LMemoryDevice: TMemoryDeviceInformation;
begin
SMBios := TSMBios.Create;
try
WriteLn( ' Memory Device Information ' );
WriteLn( ' ------------------------- ' );
if SMBios.HasPhysicalMemoryArrayInfo then
for LMemoryDevice in SMBios.MemoryDeviceInformation do
begin
WriteLn(Format( ' Total Width %d bits ' ,[LMemoryDevice.RAWMemoryDeviceInfo.TotalWidth]));
WriteLn(Format( ' Data Width %d bits ' ,[LMemoryDevice.RAWMemoryDeviceInfo.DataWidth]));
WriteLn(Format( ' Size %d Mbytes ' ,[LMemoryDevice.GetSize]));
WriteLn(Format( ' Form Factor %s ' ,[LMemoryDevice.GetFormFactor]));
WriteLn(Format( ' Device Locator %s ' ,[LMemoryDevice.GetDeviceLocatorStr]));
WriteLn(Format( ' Bank Locator %s ' ,[LMemoryDevice.GetBankLocatorStr]));
WriteLn(Format( ' Memory Type %s ' ,[LMemoryDevice.GetMemoryTypeStr]));
WriteLn(Format( ' Speed %d MHz ' ,[LMemoryDevice.RAWMemoryDeviceInfo.Speed]));
WriteLn(Format( ' Manufacturer %s ' ,[LMemoryDevice.ManufacturerStr]));
WriteLn(Format( ' Serial Number %s ' ,[LMemoryDevice.SerialNumberStr]));
WriteLn(Format( ' Asset Tag %s ' ,[LMemoryDevice.AssetTagStr]));
WriteLn(Format( ' Part Number %s ' ,[LMemoryDevice.PartNumberStr]));
WriteLn;
if LMemoryDevice.RAWMemoryDeviceInfo.PhysicalMemoryArrayHandle> 0 then
begin
WriteLn( ' Physical Memory Array ' );
WriteLn( ' --------------------- ' );
WriteLn( ' Location ' +LMemoryDevice.PhysicalMemoryArray.GetLocationStr);
WriteLn( ' Use ' +LMemoryDevice.PhysicalMemoryArray.GetUseStr);
WriteLn( ' Error Correction ' +LMemoryDevice.PhysicalMemoryArray.GetErrorCorrectionStr);
if LMemoryDevice.PhysicalMemoryArray.RAWPhysicalMemoryArrayInformation.MaximumCapacity<>$ 80000000 then
WriteLn(Format( ' Maximum Capacity %d Kb ' ,[LMemoryDevice.PhysicalMemoryArray.RAWPhysicalMemoryArrayInformation.MaximumCapacity]))
else
WriteLn(Format( ' Maximum Capacity %d bytes ' ,[LMemoryDevice.PhysicalMemoryArray.RAWPhysicalMemoryArrayInformation.ExtendedMaximumCapacity]));
WriteLn(Format( ' Memory devices %d ' ,[LMemoryDevice.PhysicalMemoryArray.RAWPhysicalMemoryArrayInformation.NumberofMemoryDevices]));
end ;
WriteLn;
end
else
Writeln( ' No Memory Device Info was found ' );
finally
SMBios.Free;
end ;
end ;
begin
try
GetMemoryDeviceInfo;
except
on E:Exception do
Writeln(E.Classname, ' : ' , E.Message);
end ;
Writeln( ' Press Enter to exit ' );
Readln;
end .
Vous pouvez installer Delphinus Package Manager et installer TSMBIOS en tant que package. (Support Delphinus)