Condividi tramite


Gestire l'ereditarietà

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

  1. Creare l'handle con il SECURITY_ATTRIBUTES membro bInheritHandle impostato su TRUE.
  2. Creare il processo figlio usando la funzioneCreateProcess, con il parametro bInheritHandles impostato su TRUE.

La funzione DuplicateHandle duplica un handle da utilizzare 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 handle per i 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
  • Lavoro
  • Mailslot
  • Mutex
  • Pipa
  • Processo
  • Chiave del Registro di sistema
  • Semaforo
  • Presa
  • Filo
  • Temporizzatore
  • Stazione finestra

Tutti gli altri oggetti sono privati per il processo che li ha creati; gli handle di oggetto non possono essere duplicati o ereditati.

Per altre informazioni, vedere Ereditarietà.