Hallo Sebastian,
so etwas in der Art hatte ich vermutet. Danke für die Aufklärung.
Nun jedoch noch einmal zurück zu dem Problem, vielleicht kannst Du mir helfen.
Hier ein Crosspost-Hinweis:
codekicker.de/fragen...WinXP-Win7-Vista/829
Ist es denn nun möglich, dass ich ACCESS_ALL nutzen kann - oder nicht?
Diesen Aspekt verstehe ich nicht so richtig.
Verstanden habe ich, dass ab WinVista der Wert von dem Refernezwert sich geändert hat.
Laut diesem Blog:
nsylvain.blogspot.co...n32winnt-mayhem.html ist es so, dass man den Wert ändern soll - passend zu jedem Betriebssystem.
Das hatte ich auch versucht. Ich hatte bei meinem Programm, mit welchem ich auf Speicherbereiche eines Spieles zugreifen möchte, die Definition von PROCESS_ALL_ACCESS umgangen und direkt die Werte eingetragen (
blogs.msdn.com/b/old...8/02/27/7912126.aspx).
Quelltext
1: 2: 3: 4: 5:
| #if (NTDDI_VERSION >= NTDDI_LONGHORN) #define PROCESS_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | \ 0xFFFF) #else #define PROCESS_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | \ 0xFFF) #endif |
Im Endeffekt sollte das doch sicher heißen, dass ich prüfen muss, auf welcher Platform das Programm läuft, um dann das richtige Flag zu nutzen - oder der einfacheit halber, wenn das Handle ungültig ist, das Flag austauschen.