Gérer l’héritage

Un processus enfant peut hériter de 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 descripteur avec le membre bInheritHandle de la structure des _ attributs de sécurité 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 descripteurs pour un autre processus, le handle dupliqué est valide uniquement dans le contexte de l’autre processus.

Un handle dupliqué ou un handle 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 vers les types d’objets suivants :

  • Jeton d'accès
  • Appareil de communication
  • Entrée de la console
  • Mémoire tampon d’écran de la console
  • Bureau
  • Répertoire
  • Événement
  • Fichier
  • Mappage de fichiers
  • Travail
  • Mailslots
  • Mutex
  • Pipe
  • Process
  • Clé de Registre
  • Semaphore
  • Prise
  • Thread
  • Minuteur
  • Station Windows

Tous les autres objets sont privés pour le 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.