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.
- Creare l'handle con il SECURITY_ATTRIBUTES membro bInheritHandle impostato su TRUE.
- 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à.