gaitmia
December 15th, 2006, 12:37
I'm having problem using directx acceleration on my applications. When i run some application which uses DirectDraw/Direct3D, my Windows simply craches! Then, i ran DXDIAG.EXE to check what is wrong.
Result tests:
Using DirectDraw acceleration= Windows crashes
No acceleration = no crash! Same result for the Direct3D tests (with acceleration = crash, no = works fine)
The problem, apparently, is an infinite loop on an important piece of code of the Window's core, because Windows stops completely! I can't do anything on it (keyboard/mouse = stopped). Oh, i'm using win xp pro!
So, i openned dxdiag.exe in OllyDbg and started debugging it. Tracing a lot of shi*** after the first breakpoint on the OK button that starts the DirectDraw test, i found this code fragment:
The piece of code above is executed a lot of times and when it executes 12 times it crashes the Windows. So, i putted a BP on the SYSENTER instruction and waitted for the eleventh breakpoint. Then used F7 to trace INTO this instruction, but i see the Windows crashes too on debugging time!
I need information about SYSENTER instruction. I know it is inside the ntdll.dll but what is the puporse of it?
Result tests:
Using DirectDraw acceleration= Windows crashes
No acceleration = no crash! Same result for the Direct3D tests (with acceleration = crash, no = works fine)
The problem, apparently, is an infinite loop on an important piece of code of the Window's core, because Windows stops completely! I can't do anything on it (keyboard/mouse = stopped). Oh, i'm using win xp pro!
So, i openned dxdiag.exe in OllyDbg and started debugging it. Tracing a lot of shi*** after the first breakpoint on the OK button that starts the DirectDraw test, i found this code fragment:
Code:
; ntdll.KiFastSystemCall routine, called by GDI32.DdEntry11() at 77E6EDAC address.
7C90EB8A NOP
7C90EB8B MOV EDX,ESP
7C90EB8D SYSENTER ;<< What is that?
7C90EB8F NOP
;Stack:
; 77E6EDAE (return on GDI32.77E6EDAE)
The piece of code above is executed a lot of times and when it executes 12 times it crashes the Windows. So, i putted a BP on the SYSENTER instruction and waitted for the eleventh breakpoint. Then used F7 to trace INTO this instruction, but i see the Windows crashes too on debugging time!
I need information about SYSENTER instruction. I know it is inside the ntdll.dll but what is the puporse of it?