Gérer l’héritage

Un processus enfant peut hériter des handles de son processus parent. Un handle hérité est valide uniquement dans le contexte du processus enfant. Pour permettre à un processus enfant d’hériter des handles ouverts de son processus parent, procédez comme suit.

  1. Créez le handle avec le membre bInheritHandle de la structure SECURITY_ATTRIBUTES défini sur TRUE.
  2. Créez le processus enfant à l’aide de la fonction CreateProcess , avec le paramètre bInheritHandles défini sur TRUE.

La fonction DuplicateHandle duplique un handle à utiliser dans le processus en cours ou dans un autre processus. Si une application duplique l’un de ses handles pour un autre processus, le handle dupliqué est valide uniquement dans le contexte de l’autre processus.

Un handle dupliqué ou hérité est une valeur unique, mais il fait référence au même objet que le handle d’origine. Les processus peuvent hériter ou dupliquer des handles dans les types d’objets suivants :

  • Jeton d'accès
  • Appareil de communication
  • Entrée console
  • Mémoire tampon d’écran de console
  • Desktop (Expérience utilisateur)
  • Répertoire
  • Événement
  • Fichier
  • Mappage de fichiers
  • Travail
  • Maillot
  • Mutex
  • Pipe
  • Process
  • Clé de Registre
  • Semaphore
  • Prise
  • Thread
  • Minuteur
  • Station de fenêtre

Tous les autres objets sont privés du processus qui les a créés ; leurs handles d’objet ne peuvent pas être dupliqués ou hérités.

Pour plus d’informations, consultez Héritage.