Prozesshandles und -bezeichner
Wenn ein neuer Prozess durch die CreateProcess--Funktion erstellt wird, werden Handles des neuen Prozesses und dessen primärer Thread zurückgegeben. Diese Handles werden mit Vollzugriffsrechten erstellt, und – vorbehaltlich der Sicherheitszugriffsüberprüfung – können in allen Funktionen verwendet werden, die Thread- oder Prozesshandles akzeptieren. Diese Handles können von untergeordneten Prozessen geerbt werden, abhängig von der beim Erstellen angegebenen Vererbungskennzeichnung. Die Ziehpunkte sind gültig, bis sie geschlossen sind, auch nachdem der prozess oder thread, den sie darstellen, beendet wurde.
Die CreateProcess-Funktion gibt auch einen Bezeichner zurück, der den Prozess im gesamten System eindeutig identifiziert. Ein Prozess kann die GetCurrentProcessId--Funktion verwenden, um einen eigenen Prozessbezeichner abzurufen (auch als Prozess-ID oder PID bezeichnet). Der Bezeichner ist ab dem Zeitpunkt gültig, zu dem der Prozess erstellt wird, bis der Prozess beendet wurde. Ein Prozess kann die Process32First--Funktion verwenden, um den Prozessbezeichner des übergeordneten Prozesses abzurufen.
Wenn Sie über einen Prozessbezeichner verfügen, können Sie das Prozesshandle abrufen, indem Sie die OpenProcess--Funktion aufrufen. OpenProcess ermöglicht es Ihnen, die Zugriffsrechte des Handles anzugeben und anzugeben, ob es geerbt werden kann.
Ein Prozess kann die GetCurrentProcess--Funktion verwenden, um ein Pseudohandle für sein eigenes Prozessobjekt abzurufen. Dieser Pseudohandle ist nur für den Aufrufvorgang gültig; sie kann nicht geerbt oder für die Verwendung durch andere Prozesse dupliziert werden. Rufen Sie die DuplicateHandle-Funktion auf, um das eigentliche Handle für den Prozess abzurufen.