Manipular herança
Um processo filho pode herdar identificadores de seu processo pai. Um identificador herdado é válido apenas no contexto do processo filho. Para permitir que um processo filho herde identificadores abertos de seu processo pai, use as etapas a seguir.
- Crie o identificador com o bInheritHandle membro da estrutura SECURITY_ATTRIBUTES definido como TRUE.
- Crie o processo filho usando a funçãoCreateProcess, com o parâmetro bInheritHandles definido como TRUE.
A função DuplicateHandle duplica um identificador a ser usado no processo atual ou em outro processo. Se um aplicativo duplicar um de seus identificadores para outro processo, o identificador duplicado será válido somente no contexto do outro processo.
Um identificador duplicado ou herdado é um valor exclusivo, mas refere-se ao mesmo objeto que o identificador original. Os processos podem herdar ou duplicar identificadores para os seguintes tipos de objetos:
- Token de acesso
- Dispositivo de comunicação
- Entrada de console
- Memória intermédia do ecrã da consola
- Versão desktop
- Diretório
- Evento
- Ficheiro
- Mapeamento de arquivos
- Emprego
- Slot de correio
- Mutex
- Tubo
- Processo
- Chave de registo
- Semáforo
- Soquete
- Tópico
- Temporizador
- Estação de janela
Todos os outros objetos são privados do processo que os criou; seus identificadores de objeto não podem ser duplicados ou herdados.
Para obter mais informações, consulte Inheritance.