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