Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   C++ C++ 2 Delphi, Core2duo/quad Reading (https://www.delphipraxis.net/98434-c-2-delphi-core2duo-quad-reading.html)

Razor 28. Aug 2007 12:05

Re: C++ 2 Delphi, Core2duo/quad Reading
 
Ahh i provided core2duo/core2quad cpu usage and nobody was thankfull,i see people begging for codes to be translated and people just do it?Explain that?

Why you think i am posting in this forum at all?So other users can benefit from this also!




I only need MSR Access code i figured the cpuid and other stuff by myself :x

EDIT: i found this code on newsgroups

Delphi-Quellcode:
type
{ hier können eigene, bessere Namen definiert werden } 
  TMachineStateRegisterRange = (Bit0 = 0, Bit63 = 63);
  TMachineStateRegister = set of TMachineStateRegisterRange;


function getMsr(whichone: Integer): TMachineStateRegister;
var
  res: TMachineStateRegister;
begin
  asm
    mov ecx, whichone
    rdmsr
    lea esi, res
    mov [esi], ax
    mov [esi+4], dx
  end;
  getMsr := res;
end;


var
  msr: TMachineStateRegister;
  i: TMachineStateRegisterRange;


begin
  msr := getMsr(0);
  for i := Low(TMachineStateRegisterRange) to
           High(TMachineStateRegisterRange) do
    if i in msr then
      WriteLn('Bit ', Ord(i), ' ist gesetzt.');
end.

Found this also

Delphi-Quellcode:
    function ReadMSR(msr_num: DWord; var msr: tmsr): boolean;
    function WriteMSR(msr_num: DWord; const msr: tmsr): boolean;

Muetze1 28. Aug 2007 12:51

Re: C++ 2 Delphi, Core2duo/quad Reading
 
As I stated many times before: you can not read out any MSR register with the RDMSR instruction in your ring 3 application. As said before: you will get a EPrivilegeInstruction exception. Try this code on your system - and not only just paste it here and hoping to find someone who glues your pieces to an working application...

Razor 28. Aug 2007 12:58

Re: C++ 2 Delphi, Core2duo/quad Reading
 
Alright wrong thinking yes...


As i have seen in other code C code the athor of it said to me that hi and lo are dwords

So...

Delphi-Quellcode:
Var
hi,lo:DWORD;
But the address is 0x19C,so we have to read MSR for 100 TjMAX and 85 Tjmax





i have this function in another driver i found,can this read this thing as we want to?

Delphi-Quellcode:
function ReadMSR(msr_num: DWord; var msr: tmsr): boolean;

ReadMSR(lo,0x19C):=true; //i doubt this is the way and thats why i ask if it is

Razor 9. Nov 2007 15:05

Re: C++ 2 Delphi, Core2duo/quad Reading
 
If someone has core 2 duo contact me i need betatesters... :)

Razor 12. Nov 2007 19:07

Re: C++ 2 Delphi, Core2duo/quad Reading
 
Hi!


As i said i read msr register this way
Delphi-Quellcode:
var
  Form1: TForm1;
    isLoadDr: boolean;
   C0:string;
   HiPart, LowPart:tmsr;
implementation

{$R *.dfm}

//Remember 2 registers $19C and $EE.
//19C is for DTS checking.
//EE is for Tjunction EE.
//Low > EAX
//Hi > EDX

procedure tform1.RDMSR;
var
 GetInstance:tomcdrv;
begin
GetInstance.Create();
   getInstance.IMSRIORef.ReadMSR($19C,lowPart);
   
  //
    //getInstance.IMSRIORef.ReadMSR($EE,HiPart);


end;

procedure tform1.intelC2D;
begin

  if   msr.lowPart=0 then
   RichEdit1.Lines.add('No Digital Thermal Sensor Detected!');


end;

Now here comes the conclusion the read msr is the same for EAX.When i tested this on my computer Celeron D cpu, i got read EAX 0
but when i tested on C2D i got the EAX 0.Here i stoped beceouse i dont know how to go on....
$EE is for determening Tjunction value and $19C is for detecting DTS-Digital thermal sensor value 0-no other value yes.
Forumula is Core temp=Tdata-Tjunction


So help is needed in order to finish this project.. :(



Offtopic:Does anybody know where can i get nforce specs/datasheets?

Razor 5. Mai 2008 08:33

Re: C++ 2 Delphi, Core2duo/quad Reading
 
Forget everything i said till now.

-I have to start at the begining and thats making a x32/x64 driver.What would be the most suitable enviroment to make it since delphi i don't think can make them.

-Driver signing for x64 vista.

-I have new computer with q6600 so testing is no problem.

Razor 7. Mai 2008 13:01

Re: C++ 2 Delphi, Core2duo/quad Reading
 
Can some post a working example without the driver i have been working on this for 2 weeks no results..
I only found these by my own research..

//Remember 2 registers $19C and $EE.
//19C is for DTS checking.
//EE is for Tjunction EE.
//Low > EAX
//Hi > EDX

:wall:


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:55 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz