Dela via


Hantera arv

En underordnad process kan ärva referenser från den överordnade processen. Ett ärvt handtag är endast giltigt i kontexten för den underordnade processen. Använd följande steg för att göra det möjligt för en underordnad process att ärva öppna referenser från den överordnade processen.

  1. Skapa handtaget med bInheritHandle medlem i SECURITY_ATTRIBUTES-strukturen inställd på TRUE.
  2. Skapa den underordnade processen med funktionen CreateProcess med parametern bInheritHandles inställd på TRUE.

Funktionen DuplicateHandle duplicerar ett handtag som ska användas i den aktuella processen eller i en annan process. Om ett program duplicerar en av sina referenser för en annan process är det duplicerade handtaget endast giltigt i kontexten för den andra processen.

Ett duplicerat eller ärvt handtag är ett unikt värde, men det refererar till samma objekt som det ursprungliga handtaget. Processer kan ärva eller duplicera referenser till följande typer av objekt:

  • Åtkomsttoken
  • Kommunikationsenhet
  • Konsolindata
  • Konsolskärmsbuffert
  • Skrivbord
  • Katalog
  • Händelse
  • Fil
  • Filmappning
  • Jobb
  • Mailslot
  • Mutex
  • Pipa
  • Process
  • Registernyckel
  • Semafor
  • Uttag
  • Tråd
  • Timer
  • Fönsterstation

Alla andra objekt är privata i processen som skapade dem. deras objekthandtag kan inte dupliceras eller ärvas.

Mer information finns i Arv.