Model-Specific Registers



  • Hallo.

    Wie kann ich ein beliebiges MS-Register bei einem Pentium 4 auslesen (unter Windows, C++ oder inline Assembler),
    dessen Adresse ich aus der Prozessor Doku kenne.
    Leider lässt mich die Intel Doku im Stich und meine Assemblerfähigkeiten sind doch sehr begrenzt, bzw. gehen gegen NULL. 🙂

    Z.B. würde ich gerne das Register mit der Adresse 17Ah (IA32_STATUS) auslesen....

    \EDIT:

    Ich sollte noch erwähnen, dass schon

    __asm
    	{
    		MOV ECX,17Ah
    		RDMSR
    	}
    

    zu der Fehlermeldung:

    Eine nicht behandelte Ausnahme des Typs 'System.Runtime.InteropServices.SEHException' ist in Unbekanntes Modul. aufgetreten.

    führt.

    Ich hoffe Ihr könnt mir (wie immer) helfen.

    Gruß.


  • Mod

    rdmsr ist ein privilegierter befehl, der nur in ring 0 (also kernel mode) bzw. im real mode ausgeführt werden kann.



  • camper schrieb:

    rdmsr ist ein privilegierter befehl, der nur in ring 0 (also kernel mode) bzw. im real mode ausgeführt werden kann.

    Habe ich auch gelesen.... 😉
    Gibt es unter Windows eine Möglichkeit, Befehle aus Ring 0 auszuführen, oder in den Kernel-Mode zu wechseln?

    Gruß


  • Mod

    schreib einen geräte treiber 😉



  • camper schrieb:

    schreib einen geräte treiber 😉

    Genau das wollte ich vermeiden, weil Microsoft da mal wieder tief in die Kiste kryptischer und nicht-erwartungskonformer Syntax gegriffen hat 😞


Anmelden zum Antworten