Gestire l'ereditarietà

Un processo figlio può ereditare handle dal processo padre. Un handle ereditato è valido solo nel contesto del processo figlio. Per abilitare un processo figlio per ereditare handle aperti dal processo padre, seguire questa procedura.

  1. Creare l'handle con il membro bInheritHandle della struttura SECURITY_ATTRIBUTES impostata su TRUE.
  2. Creare il processo figlio usando la funzione CreateProcess , con il parametro bInheritHandles impostato su TRUE.

La funzione DuplicateHandle duplica un handle da usare nel processo corrente o in un altro processo. Se un'applicazione duplica uno dei relativi handle per un altro processo, l'handle duplicato è valido solo nel contesto dell'altro processo.

Un handle duplicato o ereditato è un valore univoco, ma fa riferimento allo stesso oggetto dell'handle originale. I processi possono ereditare o duplicare gli handle ai tipi di oggetti seguenti:

  • Token di accesso
  • Dispositivo di comunicazione
  • Input della console
  • Buffer dello schermo della console
  • Desktop
  • Directory
  • Evento
  • File
  • Mapping dei file
  • Processo
  • Mailslot
  • Mutex
  • Pipe
  • Processo
  • Chiave del Registro di sistema
  • Semaphore
  • Presa elettrica
  • Thread
  • Timer
  • Stazione finestra

Tutti gli altri oggetti sono privati del processo che li ha creati; i relativi handle di oggetti non possono essere duplicati o ereditati.

Per altre informazioni, vedere Ereditarietà.