Einzelnen Beitrag anzeigen

Benutzerbild von Mr_G
Mr_G

Registriert seit: 2. Sep 2004
Ort: Duisburg
468 Beiträge
 
Delphi 2006 Professional
 
#6

Re: CallNTPowerInformation unter Vista

  Alt 9. Feb 2009, 20:27
Also das Problem liegt nicht bei Vista sondern bei der Anzahl der Kerne. Du bekommst für jeden Kern eine solche Stuktur und der angegebene Fehler entspricht demnach STATUS_BUFFER_TOO_SMALL.
Ich hab das ganze mal so verwendet:
Delphi-Quellcode:
procedure TForm.ButtonClick(Sender: TObject);
var SysInfo: SYSTEM_INFO;
    PowerInfos: Pointer;
    PowerInfoArray: array of PROCESSOR_POWER_INFORMATION;
    size, ret: Cardinal;
    i: Integer;
begin
  GetSystemInfo(SysInfo);
  size := SizeOf(PROCESSOR_POWER_INFORMATION) * SysInfo.dwNumberOfProcessors;
  GetMem(PowerInfos, size);
  ZeroMemory(PowerInfos, size);
  ret := CallNTPowerInformation(11, nil, 0, PowerInfos, size);
  if ret = ERROR_SUCCESS then
    begin
      PowerInfoArray := PowerInfos;
      for i := 0 to SysInfo.dwNumberOfProcessors - 1 do
      begin
        Memo.Lines.Add(IntToStr(PowerInfoArray[i].Number));
        Memo.Lines.Add(IntToStr(PowerInfoArray[i].CurrentMhz));
        //...
      end;
    end
  else
    //Fehler...
  FreeMem(PowerInfos, size);
end;
Ich fürchte meine ehemaligen Basteleien sind aber alles andere als sauber. Vielleicht schaut da noch mal jemand drüber.
Jan
  Mit Zitat antworten Zitat