Re: Subclassing einer fremden Application, warum funzt das n
10. Nov 2003, 22:19
Kurzgeschichte:
Der Speicher in NT ist (oberhalb des MM) in 2 Bereiche aufgeteilt. Einmal der fuer den usermode und einmal der fuer den Kernel. Ich weiss nicht mehr wie rum das nun war, aber gehen wir mal von Hagens Annahme aus $80000000 sei die Grenze. Alles was oberhalb liegt waere dann Kernelspeicher und alles darunter Usermode-Speicher. Bekanntlich duerfen sich Prozesse keinen Speicher teilen, aber der Kernel darf ... daher kommt das mit den Sections (aka MMFs). Die liegen im Kernelspeicher-Bereich, aber es ist eben nicht sicher wie nun das Mapping fuer die einzelnen Prozesse aussieht. Rein theoretisch sollte es immer gleich sein (ich benutze das zB in meinem Hooktut, Hagen in seinem Code und viele andere Leute auch ...) ... aber muss nicht. Fazit, sollte MS das mal aendern, kacken die entsprechenden Progs ab. ABER MS verwendet das sicher selber so oft, dass eine Aenderung fatale Folgen fuer bereits veroeffentlichte Software haben kann.
Um es nochmal zu klaeren. Es gibt quasi 3 Ebenen:
1. physikal. Speicher
2. Speichermanager, welcher den Misch aus Ebene 1 und 3 "sieht" und verwaltet
3. Logischer Speicher, wie ihn jede einzelne Usermode-Anwendung sieht.
PS: Sorry, das ist keine klare Trennung der Begriffe, soll aber auch nur veranschaulichen.
|