Partilhar via


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.

  1. Crie o identificador com o bInheritHandle membro da estrutura SECURITY_ATTRIBUTES definido como TRUE.
  2. 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.