Vererbung behandeln
Ein untergeordneter Prozess kann Handles von seinem übergeordneten Prozess erben. Ein geerbter Handle ist nur im Kontext des untergeordneten Prozesses gültig. Führen Sie die folgenden Schritte aus, damit ein untergeordneter Prozess geöffnete Handles von seinem übergeordneten Prozess erben kann.
- Erstellen Sie das Handle mit dem bInheritHandle-Member der SECURITY_ATTRIBUTES Struktur, die auf TRUE festgelegt ist.
- Erstellen Sie den untergeordneten Prozess mithilfe der CreateProcess-Funktion , wobei der bInheritHandles-Parameter auf TRUE festgelegt ist.
Die DuplicateHandle-Funktion dupliziert ein Handle, das im aktuellen Prozess oder in einem anderen Prozess verwendet werden soll. Wenn eine Anwendung eines ihrer Handles für einen anderen Prozess dupliziert, ist das duplizierte Handle nur im Kontext des anderen Prozesses gültig.
Ein dupliziertes oder geerbtes Handle ist ein eindeutiger Wert, verweist aber auf dasselbe Objekt wie das ursprüngliche Handle. Prozesse können Handles auf die folgenden Objekttypen erben oder duplizieren:
- Access Token
- Kommunikationsgerät
- Konsoleneingabe
- Konsolenbildschirmpuffer
- Desktop
- Verzeichnis
- Ereignis
- Datei
- Dateizuordnung
- Auftrag
- Mailslot
- Mutex
- Pipe
- Prozess
- Registrierungsschlüssel
- Semaphore
- Steckdose
- Thread
- Timer
- Fensterstation
Alle anderen Objekte sind privat für den Prozess, der sie erstellt hat; Ihre Objekthandles können nicht dupliziert oder geerbt werden.
Weitere Informationen finden Sie unter Vererbung.