Closed GoogleCodeExporter closed 9 years ago
I cannot reproduce the issue, In Windows 8. Can you use the TSMBios.SaveToFile
method to dump the SMBIOS data and then send that file?
Original comment by Rodrigo.Ruz.V@gmail.com
on 4 Apr 2014 at 5:25
I tried with the dump file, but not exception was raised. Which version of
Delphi are you using?
Original comment by Rodrigo.Ruz.V@gmail.com
on 8 Apr 2014 at 3:31
Weird.
I'm using Embarcadero RAD Studio XE3 (update 2) Version 17.0.4770.56661
My test code:
-------------
var
SMBios : TSMBios;
LProcessorInfo : TProcessorInformation;
begin
SMBios := TSMBios.Create('smbiosdmp.dat');
try
if SMBios.HasProcessorInfo then
begin
for LProcessorInfo in SMBios.ProcessorInfo do
begin
try
Memo1.Lines.Add(LProcessorInfo.ProcessorManufacturerStr);
IntToStr(1);
except
on E: Exception do
begin
IntToStr(1);
end;
end;
end;
end;
finally
SMBios.Free;
end;
end;
-------------
Those IntToStr are there so I can set breakpoints.
Original comment by swanty...@gmail.com
on 8 Apr 2014 at 5:29
Okay I believe I have found the problem in your code.
uSMBIOS.pas
Change all "LIndex:=0;" to "LIndex:=-1;" in
procedure TSMBios.ReadSMBiosTables
The smbios file I provided previously has processor information as first table,
but your code assumes every table except BiosInformation and SystemInformation
are not the first table judging by the LIndex values.
Original comment by swanty...@gmail.com
on 8 Apr 2014 at 12:19
Thanks very much, for your time finding the issue.
Original comment by Rodrigo.Ruz.V@gmail.com
on 10 Apr 2014 at 1:27
This issue was closed by revision r107.
Original comment by Rodrigo.Ruz.V@gmail.com
on 10 Apr 2014 at 1:28
Uh, you forgot to set LIndex to -1 for FSystemSlotInfo.
Original comment by swanty...@gmail.com
on 10 Apr 2014 at 9:15
Original issue reported on code.google.com by
swanty...@gmail.com
on 4 Apr 2014 at 9:39