Wie kann ich den OpenGL -Absturz im Minen -Snapshot -Programm (Windows) vermeiden?C++

Programme in C++. Entwicklerforum
Anonymous
 Wie kann ich den OpenGL -Absturz im Minen -Snapshot -Programm (Windows) vermeiden?

Post by Anonymous »

Ich versuche, die Funktionsfunktionalität von Prozess -Snapshots in C ++ unter Windows X64 zu implementieren, um den Laufzeitzustand eines Prozesses zu speichern und ihn nach einem bestimmten Zeitraum wiederherzustellen, während der Prozess ausgeführt wird. Mein Ziel ist es, alle Vorgänge im Benutzermodus zu erledigen, wann immer möglich. Dies funktioniert korrekt mit älteren Programmen wie Minesweeper, Pflanzen vs. Zombies und benutzerdefinierten Befehlszeilenanwendungen. in nvoglv64.dll mit Fehler Codes 0xc0000409 und 0xc0000005 . Ich habe versucht, Speicherregionen zu überspringen, die diesem Modul zugeordnet sind, aber die Fehler bestehen bestehen. > Snapshot machen: < /strong> < /p>

Alle Threads einfrieren → Thread -Kontexte & TEB → Alle Speicherregionen Dumpen → Threads entfernen. />
Alle Threads einfrieren → Überschreiben von Speicherregionen → Thread -Kontexte und TEB → Threads entfernen. < /li>
< /ul>
< /li>
< /ol>
Analyse: < /strong>

Das Problem stammt wahrscheinlich aus OpenGL -Speichern von Ressourcenhandles (z. B.,,, z. B.,, Texturen, Puffer) im GPU -Speicher (VRAM). Diese GPU-spezifischen Staaten werden während des Prozess-Schnappschusss nicht erfasst, was zu staatlichen Inkonsistenzen bei der Wiederherstellung führt. Obwohl VRAM nicht direkt zugänglich ist, vermute ich, dass die Erhaltung des GPU -Staates möglicherweise indirekte Methoden wie Prozessinjektion oder DLL -Weiterleitung erfordern. Ich habe diese Ansätze versucht, aber es fehlt ausreichend Kenntnisse über die Rendern von Engine -Interna, um das Problem zu lösen. < /P>
Wie kann ich das Crash -Problem lösen?

Programm: snapshot.exe
(automatisch ein Prozess mit dem Namen test.exe und automatisch Schnappschüsse stellt es wieder her 4 Sekunden später). /li>
< /ul>
Fehlerstapel < /strong> < /p>

Code: Select all

nvoglv64!vk_icdNegotiateLoaderICDInterfaceVersion+0xcade5

nvoglv64!DrvValidateVersion+0xaa0a

nvoglv64!DrvPresentBuffers+0x2acd7

nvoglv64!DrvPresentBuffers+0x2a217

nvoglv64!DrvPresentBuffers+0x188b3

nvoglv64!DrvPresentBuffers+0x1302c2

nvoglv64!DrvPresentBuffers+0x132598

nvoglv64!DrvPresentBuffers+0x13478d

nvoglv64!DrvPresentBuffers+0x13338b

nvoglv64!DrvPresentBuffers+0x14d9d8

nvoglv64!DrvValidateVersion+0x6c76

nvoglv64!DrvPresentBuffers+0x112ca1

nvoglv64!DrvPresentBuffers+0xc9218

nvoglv64!DrvPresentBuffers+0xef6f2

nvoglv64!DrvPresentBuffers+0xef00d

nvoglv64!DllMain+0x7d46

nvoglv64!DllMain+0x7ebd

nvoglv64!DllMain+0x7c9e

nvoglv64!DllMain+0x760e

nvoglv64!DrvSwapLayerBuffers+0x2b6

nvoglv64!DllMain+0xa683

nvoglv64+0x11133a3

nvoglv64+0x1113087

nvoglv64!DrvValidateVersion+0xd988

kernel32!BaseThreadInitThunk+0x14

ntdll!RtlUserThreadStart+0x21

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post