Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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:
- 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ą.
- 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 |