Partager via


Fonction ReleasePseudoConsole

Renonce à la propriété du handle HPCON à la pseudoconsole, ce qui lui permet de se fermer automatiquement une fois que tous les clients se sont déconnectés.

Syntaxe

HRESULT WINAPI ReleasePseudoConsole(
    _In_ HPCON hPC
);

Paramètres

hPC [in] Un handle vers une pseudoconsole active, tel qu’ouvert par CreatePseudoConsole.

Valeur retournée

Type : HRESULT

Si cette méthode aboutit, elle renvoie S_OK. Sinon, elle renvoie un code d’erreur HRESULT. L’appel n’est pas censé échouer, sauf si l’argument hPC n’est pas valide dans le cas où il retourne E_INVALIDARG.

Remarques

Avertissement

ReleasePseudoConsole ne désalloue pas la mémoire associée au HPCON. Vous devez toujours appeler ClosePseudoConsole une fois que vous avez terminé d’utiliser l’instance HPCON . Pour plus d’informations sur son utilisation correcte, consultez ClosePseudoConsole .

Le handle HPCON appartenant à votre application conserve la session pseudoconsole active indéfiniment par défaut. Dans les versions précédentes de Windows, seul ClosePseudoConsole abandonnerait la propriété du handle HPCON . Toutefois, il attendrait également que tous les clients se déconnectent avant de retourner.

Cela a entraîné deux problèmes :

  1. Il n’était pas possible de détecter de manière fiable si tous les clients avaient déconnecté. Il suffit de tester si le processus de console initialement généré a été arrêté est insuffisant, car il peut avoir généré des processus supplémentaires qui sont toujours en cours d’exécution.
  2. Il a créé une boucle de durée de vie et de propriété entre la pseudoconsole et l’application. Votre application conserverait la session pseudoconsole active en maintenant la poignée HPCON enfoncée, tandis que la pseudoconsole conserverait votre application active, car vous attendiez une indication que tous les clients avaient déconnecté avant d’appeler ClosePseudoConsole.

ReleasePseudoConsole résout ce problème : après avoir appelé cette fonction, la pseudoconsole s’arrête automatiquement une fois que tous les clients se sont déconnectés. Tout ce que vous devez faire maintenant est de lire ou d’écrire dans vos handles de canal de sortie et d’entrée jusqu’à ce qu’ils retournent une défaillance. Cela indique que tous les clients se sont déconnectés et que la pseudoconsole a quitté. Appelez ClosePseudoConsole pour libérer les bits restants en utilisant le handle HPCON.

Exemples

Pour obtenir une procédure pas à pas complète sur l’utilisation de cette fonction pour établir une session pseudoconsole, consultez Création d’une session pseudoconsole.

Spécifications

   
Client minimal pris en charge Windows 11 24H2 (build 26100) [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2025 (build 26100)
En-tête de page ConsoleApi.h (via WinCon.h, incluez Windows.h)
Bibliothèque Kernel32.lib
DLL Kernel32.dll

Voir aussi

Pseudoconsoles

Création d’une session pseudoconsole

ClosePseudoConsole