Compartir a través de


Función ReleasePseudoConsole

Cede la propiedad del identificador HPCON a la pseudoconsola, permitiéndole salir automáticamente una vez que todos los clientes se hayan desconectado.

Sintaxis

HRESULT WINAPI ReleasePseudoConsole(
    _In_ HPCON hPC
);

Parámetros

hPC [in] Un identificador de una pseudoconsola activa que se ha abierto mediante CreatePseudoConsole.

Valor devuelto

Tipo: HRESULT

Si este método se realiza correctamente, devuelve S_OK. De lo contrario, devuelve un código de error de HRESULT. No se espera que se produzca un error en la llamada a menos que el argumento hPC no sea válido en cuyo caso devuelve E_INVALIDARG.

Observaciones

Advertencia

ReleasePseudoConsole no desasigna la memoria asociada a HPCON. Todavía debe llamar a ClosePseudoConsole una vez que haya terminado de usar la instancia HPCON. Consulte ClosePseudoConsole para obtener información importante sobre su uso correcto.

El controlador HPCON propiedad de la aplicación mantiene la sesión de pseudoconsola activa indefinidamente de forma predeterminada. En versiones anteriores de Windows, solo ClosePseudoConsole renunciaría a la propiedad del controlador HPCON . Sin embargo, también esperaría hasta que todos los clientes se hubieran desconectado antes de volver.

Esto dio lugar a dos problemas:

  1. Posiblemente no se detectó de forma confiable si todos los clientes se habían desconectado. Probar simplemente si el proceso de consola generado inicialmente ha terminado es insuficiente, ya que podría haber generado procesos adicionales que todavía están ejecutándose.
  2. Creó un bucle de duración y propiedad entre la pseudoconsola y la aplicación. La aplicación mantendría activa la sesión de pseudoconsola manteniendo el controlador HPCON , mientras que la pseudoconsola mantenería activa la aplicación, ya que esperaba una indicación de que todos los clientes se habían desconectado antes de llamar a ClosePseudoConsole.

ReleasePseudoConsole resuelve este problema: después de llamar a esta función, la pseudoconsola se cerrará automáticamente una vez que todos los clientes se hayan desconectado. Lo único que debe hacer ahora es leer o escribir en los identificadores de canalización de salida y entrada hasta que devuelvan un error. Esto indica que todos los clientes se han desconectado y que la pseudoconsola ha salido. Llame a ClosePseudoConsole para liberar los bits restantes que está reteniendo el controlador HPCON.

Ejemplos

Para ver un tutorial completo sobre cómo usar esta función para establecer una sesión de pseudoconsola, consulte Creación de una sesión de pseudoconsola.

Requisitos

   
Cliente mínimo compatible Windows 11 24H2 (compilación 26100) [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2025 (compilación 26100)
Cabecera ConsoleApi.h (a través de WinCon.h, incluye Windows.h)
Biblioteca Kernel32.lib
Archivo DLL Kernel32.dll

Consulte también

Pseudoconsolas

Creación de una sesión de pseudoconsola

ClosePseudoConsole