Bist du sicher, dass nicht mehrere Threads laufen (vor allem bei NET&Co, aber auch bei "komplexeren" Programmen, die mittels RAD-Tools (Delphi/Borland IDEs)) öfters der Fall. Prüfbar z.B mit ProzessExplorer.
Wie liest du die Werte ein, um zu prüfen, ob GetThreadContext richtig ausgeführt wurde?
Edit/PS: um sicherzustellen: verstehe ich den Satz "Breakpoint (0xCC) auf eine Kernel32 API-Funktion" richtig, dass du damit einen BP in der Kernel32.DLL setzt (und nicht etwa bei einem Call dieser Funktion in der Exe)?