Einzelnen Beitrag anzeigen

Dezipaitor

Registriert seit: 14. Apr 2003
Ort: Stuttgart
1.701 Beiträge
 
Delphi 7 Professional
 
#2

Re: Prozesse & Handles auslesen

  Alt 18. Feb 2010, 14:32
Handles sind nichts weiter als Nummern, die von deinem Prozess in einer Liste geführt werden. Durch diese Nummer kann Windows dann speziell für deinen Prozess herausfinden, welche Ressource (z.B. Prozess) gemeint ist.
Das bedeutet, dass ein Handle auch nicht übertragbar ist auf einen anderen Prozess, da dieser eine andere Handletabelle führt. So können zwei gleiche Handles aus unterschiedlichen Prozessen auf völlig andere Resourcen (z.b. Prozess und Datei) verweisen.

Wenn du mit CloseHandle diese Nummer aus der Handleliste entfernst, dann ist sie wertlos und kann nicht weiter verwendet werden.

Jedesmal wenn du eine Resource, wie einen Verweis auf einen Prozess, anforderst, vergibt Windows deinem Prozess so eine Nummer/Handle. Und das jedesmal von neuem, so dass Handles nicht einzigartig für eine Ressource sind. Es können gerne mehrere Handles auf denselben Prozess zeigen, obwohl sie nicht dieselben Nummern sind.
Deshalb gibt es ProzessIDs, die für jeden Prozess nur einmal vergeben werden und an OpenProcess übergeben werden.

So ist dein beobachtetes Verhalten zu erklären.

Achja, Willkommen in der Delphipraxis
Christian
Windows, Tokens, Access Control List, Dateisicherheit, Desktop, Vista Elevation?
Goto: JEDI API LIB & Windows Security Code Library (JWSCL)
  Mit Zitat antworten Zitat