Udostępnij przez


Funkcja ReleasePseudoConsole

Ponownie rezygnuje z własności dojścia HPCON do pseudokonsole, co pozwala na automatyczne zamykanie po rozłączeniu wszystkich klientów.

Składnia

HRESULT WINAPI ReleasePseudoConsole(
    _In_ HPCON hPC
);

Parametry

hPC [in] Dojście do aktywnej pseudokonsole otwarte przez createPseudoConsole.

Wartość zwracana

Typ: HRESULT

Jeśli ta metoda powiedzie się, zwraca S_OK. W przeciwnym razie zwraca kod błędu HRESULT. Nie oczekuje się, że wywołanie zakończy się niepowodzeniem, chyba że argument hPC jest nieprawidłowy, w takim przypadku zwracany jest E_INVALIDARG.

Uwagi

Ostrzeżenie

ReleasePseudoConsole nie cofa przydziału pamięci skojarzonej z hpCON. Po zakończeniu korzystania z wystąpienia HPCON należy również wywołać metodę ClosePseudoConsole. Aby uzyskać ważne informacje o prawidłowym użyciu, zobacz ClosePseudoConsole .

Dojście HPCON, które należy do aplikacji, domyślnie utrzymuje sesję pseudokonsoli bezterminowo. W poprzednich wersjach systemu Windows tylko closePseudoConsole zrezygnowałoby z własności dojścia HPCON . Jednak będzie także czekać, aż wszyscy klienci się rozłączą, zanim się zwróci.

Spowodowało to dwa problemy:

  1. Nie można było wiarygodnie wykryć, czy wszyscy klienci rozłączyli się. Samo przetestowanie, czy początkowo uruchomiony proces konsoli zakończył się, jest niewystarczające, ponieważ może uruchomić dodatkowe procesy, które nadal działają.
  2. Utworzono pętlę okresu istnienia i własności między pseudokonsole a aplikacją. Aplikacja by utrzymała sesję pseudokonsoli aktywną, trzymając uchwyt HPCON, natomiast pseudokonsola utrzymywałaby aplikację aktywną, ponieważ czekałeś na informację, że wszyscy klienci się rozłączyli, zanim wywołałeś ClosePseudoConsole.

ReleasePseudoConsole rozwiązuje ten problem: po wywołaniu tej funkcji pseudokonsole automatycznie wyjdą po rozłączeniu wszystkich klientów. Teraz wystarczy odczytać lub zapisać do uchwytów potoku wyjściowego i wejściowego do momentu, gdy zwrócą błąd. Oznacza to, że wszyscy klienci rozłączyli się i że pseudokonsola została zakończona. Wywołaj ClosePseudoConsole, aby zwolnić pozostałe bity, które są przechowywane przez uchwyt HPCON.

Przykłady

Pełny przewodnik dotyczący używania tej funkcji do ustanowienia sesji pseudokonsole można znaleźć w temacie Creating a Pseudoconsole Session (Tworzenie sesji pseudokonsole).

Wymagania

   
Minimalny obsługiwany klient Windows 11 24H2 (kompilacja 26100) [tylko aplikacje klasyczne]
Minimalny obsługiwany serwer Windows Server 2025 (kompilacja 26100)
Nagłówek ConsoleApi.h (za pośrednictwem pliku WinCon.h, zawiera Windows.h)
Biblioteka Kernel32.lib
DLL Kernel32.dll

Zobacz także

Pseudokonsoles

Tworzenie sesji pseudokonsole

ClosePseudoConsole