Partilhar via


Função ReleasePseudoConsole

Renuncia à propriedade do identificador para o HPCON pseudoconsole, permitindo que ele saia automaticamente assim que todos os clientes se desconectarem.

Sintaxe

HRESULT WINAPI ReleasePseudoConsole(
    _In_ HPCON hPC
);

Parâmetros

hPC [in] Um identificador para um pseudoconsole ativo como aberto por CreatePseudoConsole.

Valor de retorno

Tipo: HRESULT

Se esse método for bem-sucedido, ele retornará S_OK. Caso contrário, ele retorna um HRESULT código de erro. Não se espera que a chamada falhe, a menos que o argumento hPC seja inválido, caso em que retorna E_INVALIDARG.

Observações

Advertência

ReleasePseudoConsole não desaloca a memória associada ao HPCON. Você ainda deve chamar ClosePseudoConsole quando terminar de usar a instância HPCON . Consulte ClosePseudoConsole para obter informações importantes sobre seu uso correto.

O identificador HPCON de propriedade do seu aplicativo mantém a sessão do pseudoconsole ativa indefinidamente por padrão. Em versões anteriores do Windows, apenas ClosePseudoConsole renunciava à propriedade do identificador HPCON . No entanto, também esperaria até que todos os clientes se desconectassem antes de retornar.

Daí resultaram duas questões:

  1. Não foi possível detetar de forma fiável se todos os clientes se tinham desligado. Simplesmente testar se o processo de console inicialmente gerado havia saído é insuficiente, pois pode ter gerado processos adicionais que ainda estão em execução.
  2. Criou um ciclo de vida e propriedade entre o pseudoconsole e a aplicação. Seu aplicativo manteria a sessão do pseudoconsole ativa mantendo o identificador HPCON , enquanto o pseudoconsole manteria seu aplicativo vivo, enquanto você aguardava uma indicação de que todos os clientes haviam se desconectado antes de chamar ClosePseudoConsole.

ReleasePseudoConsole resolve esse problema: Depois de chamar essa função, o pseudoconsole será automaticamente encerrado assim que todos os clientes se desconectarem. Tudo o que precisa fazer agora é ler ou gravar nos seus pipes de saída e entrada até estes retornarem uma falha. Isso indica que todos os clientes foram desconectados e que o pseudoconsole foi encerrado. Chame ClosePseudoConsole para libertar os bits restantes que o identificador HPCON mantém.

Exemplos

Para obter um passo a passo completo sobre como usar essa função para estabelecer uma sessão de pseudoconsole, consulte Criando uma sessão de pseudoconsole.

Requerimentos

   
Cliente mínimo suportado Windows 11 24H2 (compilação 26100) [apenas aplicações de ambiente de trabalho]
Servidor mínimo suportado Windows Server 2025 (compilação 26100)
Cabeçalho ConsoleApi.h (via WinCon.h, inclui Windows.h)
Biblioteca Kernel32.lib
DLL Kernel32.dll

Ver também

Pseudoconsoles

Criando uma sessão de pseudoconsole

FecharPseudoConsole