Behandeln der Vererbung
Ein untergeordneter Prozess kann Handles vom übergeordneten Prozess erben. Ein geerbter Handle ist nur im Kontext des untergeordneten Prozesses gültig. Führen Sie die folgenden Schritte aus, um einem untergeordneten Prozess das Erbe von geöffneten Handles vom übergeordneten Prozess zu ermöglichen.
- Erstellen Sie das Handle mit dem bInheritHandle Member der SECURITY_ATTRIBUTES Struktur, die auf TRUEfestgelegt ist.
- Erstellen Sie den untergeordneten Prozess mithilfe der funktion CreateProcess, wobei die bInheritHandles Parameter auf TRUEfestgelegt ist.
Die DuplicateHandle-Funktion dupliziert ein Handle, das im aktuellen Prozess oder in einem anderen Prozess verwendet werden soll. Wenn eine Anwendung einen seiner 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, bezieht sich jedoch auf dasselbe Objekt wie der ursprüngliche Handle. Prozesse können Handles an die folgenden Objekttypen erben oder duplizieren:
- Zugriffstoken
- Kommunikationsgerät
- Konsoleneingabe
- Konsolenbildschirmpuffer
- Desktop
- Verzeichnis
- Ereignis
- Datei
- Dateizuordnung
- Arbeit
- Mailslot
- Mutex
- Pfeife
- Prozess
- Registrierungsschlüssel
- Semaphor
- Steckdose
- Faden
- Zeitschaltuhr
- Fensterstation
Alle anderen Objekte sind privat für den Prozess, der sie erstellt hat; Ihre Objektziehpunkte können nicht dupliziert oder geerbt werden.
Weitere Informationen finden Sie unter Vererbung.