Compartilhar via


Função ReleasePseudoConsole

Renuncia à propriedade do identificador HPCON para o pseudoconsole, permitindo que ele saia automaticamente quando todos os clientes forem desconectados.

Sintaxe

HRESULT WINAPI ReleasePseudoConsole(
    _In_ HPCON hPC
);

Parâmetros

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

Valor retornado

Digite: HRESULT

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

Observações

Aviso

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

O identificador HPCON de propriedade do aplicativo mantém a sessão pseudoconsole ativa indefinidamente por padrão. Nas versões anteriores do Windows, apenas ClosePseudoConsole renunciaria à propriedade do identificador HPCON . No entanto, ele também aguardaria até que todos os clientes tivessem se desconectado antes de retornar.

Isso resultou em dois problemas:

  1. Não foi possível detectar de forma confiável se todos os clientes haviam se desconectado. Simplesmente testar se o processo de console gerado inicialmente foi encerrado é insuficiente, pois pode ter gerado processos adicionais que ainda estão em execução.
  2. Foi criado um ciclo de vida e de propriedade entre o pseudoconsole e o aplicativo. Seu aplicativo manteria a sessão pseudoconsole ativa, mantendo o identificador HPCON ativo, enquanto o pseudoconsole manteria seu aplicativo ativo, pois você estava aguardando 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 sairá automaticamente depois que todos os clientes tiverem se desconectado. Tudo o que você precisa fazer agora é ler ou escrever nos identificadores de pipe de saída ou de entrada até que indiquem uma falha. Isso indica que todos os clientes se desconectaram e que o pseudoconsole foi encerrado. Chame ClosePseudoConsole para liberar os bits remanescentes mantidos pelo identificador HPCON.

Exemplos

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

Requisitos

   
Cliente mínimo com suporte Windows 11 24H2 (build 26100) [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2025 (build 26100)
Cabeçalho ConsoleApi.h (via WinCon.h, incluir Windows.h)
Biblioteca Kernel32.lib
DLL Kernel32.dll

Consulte também

Pseudoconsolas

Criando uma sessão pseudoconsole

ClosePseudoConsole