Controlar la herencia
Un proceso secundario puede heredar identificadores de su proceso primario. Un identificador heredado solo es válido en el contexto del proceso secundario. Para permitir que un proceso secundario herede identificadores abiertos de su proceso primario, siga estos pasos.
- Cree el identificador con el miembro bInheritHandle deSECURITY_ATTRIBUTES establecido en TRUE.
- Cree el proceso secundario mediante la función CreateProcess, con el parámetro bInheritHandles establecido en TRUE.
La función DuplicateHandle duplica un identificador que se va a usar en el proceso actual o en otro proceso. Si una aplicación duplica uno de sus identificadores para otro proceso, el identificador duplicado solo es válido en el contexto del otro proceso.
Un identificador duplicado o heredado es un valor único, pero hace referencia al mismo objeto que el identificador original. Los procesos pueden heredar o duplicar identificadores a los siguientes tipos de objetos:
- Token de acceso
- Dispositivo de comunicaciones
- Entrada de la consola
- Búfer de pantalla de la consola
- Escritorio
- Directorio
- Evento
- Archivo
- Asignación de archivos
- Trabajo
- Mailslot
- Exclusión mutua
- Pipa
- Proceso
- Clave del Registro
- Semáforo
- Enchufe
- Hilo
- Temporizador
- Estación de ventanas
Todos los demás objetos son privados para el proceso que los creó; sus identificadores de objeto no se pueden duplicar ni heredar.
Para obtener más información, vea Herencia.