Prozess-Handle: Brauche kleine Erklärung
-
Hallo,
ich arbeite an einem Tool, mit dem ich hauptsächlich in Echtzeit den Speicher von Programmen manipulieren kann.
Ein Feature ist, dass alle PIDs, Prozessnamen und Prozess-Handles in einer Tabelle angezeight werden. Ähnlich wie mit Get-Process in der PowerShell.
Aber wobei genau handelt es sich bei einem solchen Handle? Ich haben diesen immer gebraucht, will ich alle Speicherregionen angezeigt bekommen:VirtualQueryEx(HANDLE, LPVOID, &MEMORY_BASIC_INFORMATION, int);
Jedesmal, wenn die laufenden Prozesse gelistet werden, ändert sich der Wert des Handles minimal.
-
@sucy_manbavaran
Ein Handle ist eine Art identifier für eine Datenstruktur, die vom Betriebssystem verwaltet wird. Das kann ein Pointer sein, ein Pointer auf einen Pointer oder auch ein Index in einer Tabelle, in der Pointer auf iwas anderes steht. Handles sind opak, man hat keine Ahnung, auf was es tatsächlich zeigt oder identifiziert. Muss man aber auch nicht. Wenn du perOpenProcess
ein Handle für einen Prozess anforderst, und er Aufruf gelingt, kannst du mit dem Handle weiterarbeiten. Das Einzige, was dich dabei interessiert, ist dass du das Handle für weitere Funktionsaufrufe benutzen kannst. Und dass Handles iwie doch unterschiedlich sind, denn das Handle ausOpenProcess
kann nicht sinnvoll für die FunktionFindNextFile
benutzt werden.Weitere Infos gibt´s hier
-
-
Danke euch
-