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 de la estructura SECURITY_ATTRIBUTES establecida 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 de los siguientes tipos de objetos:
- Token de acceso
- Dispositivo de comunicaciones
- Entrada de consola
- Búfer de pantalla de la consola
- Escritorio
- Directorio
- Evento
- Archivo
- Asignación de archivos
- Trabajo
- Mailslot
- Mutex
- Pipe
- Proceso
- Clave del Registro
- Semaphore
- Toma de corriente
- Thread
- Temporizador
- Estación de ventana
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.