Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Überlässt das Eigentum an der HPCON Zugriff an die Pseudokonsole, so dass diese automatisch beendet wird, sobald alle Clients die Verbindung getrennt haben.
Syntax
HRESULT WINAPI ReleasePseudoConsole(
_In_ HPCON hPC
);
Parameter
hPC [in] Ein Handle zu einer aktiven Pseudokonsole, wie es von CreatePseudoConsole geöffnet wurde.
Rückgabewert
Type: HRESULT
Si este método se realiza correctamente, devuelve S_OK. De lo contrario, devuelve un código de error de HRESULT. Der Aufruf sollte nicht fehlschlagen, es sei denn, das hPC-Argument ist ungültig. In diesem Fall wird E_INVALIDARG zurückgegeben.
Bemerkungen
Warnung
ReleasePseudoConsole gibt den Speicher, der dem HPCON zugeordnet ist, nicht frei. Man muss immer noch ClosePseudoConsole once you're done using the HPCON instance. Wichtige Informationen zur richtigen Verwendung finden Sie unter ClosePseudoConsole .
Das HPCON-Handle , das ihrer Anwendung gehört, hält die Pseudoconsole-Sitzung standardmäßig unbegrenzt aktiv. In früheren Versionen von Windows würde nur ClosePseudoConsole den Besitz des HPCON-Handles aufgeben. Allerdings würde es auch warten, bis alle Clients die Verbindung getrennt haben, bevor es zurückkehrt.
Dies führte zu zwei Problemen:
- Es war nicht möglich, zuverlässig zu erkennen, ob alle Clients die Verbindung getrennt hatten. Es ist unzureichend, nur zu prüfen, ob der anfänglich gestartete Konsolenprozess beendet wurde, da er möglicherweise zusätzliche Prozesse gestartet hat, die noch laufen.
- Es hat einen Lebenszyklus und eine Besitz-Schleife zwischen der Pseudokonsole und der Anwendung erstellt. Ihre Anwendung würde die Pseudokonsolensitzung am Leben erhalten, indem sie die HPCON Bezeichnung, während die Pseudokonsole Ihre Anwendung am Leben erhalten würde, da Sie auf ein Zeichen warten, dass alle Clients die Verbindung getrennt haben, bevor Sie ClosePseudoConsole.
ReleasePseudoConsole löst dieses Problem: Nach dem Aufrufen dieser Funktion wird die Pseudoconsole automatisch beendet, sobald alle Clients die Verbindung getrennt haben. Alles, was Sie jetzt tun müssen, ist, von Ihren Output- und Input-Pipe-Handles zu lesen oder in sie zu schreiben, bis sie einen Fehler zurückgeben. Dies zeigt an, dass alle Clients die Verbindung getrennt haben und dass die Pseudokonsole beendet wurde. Rufen Sie ClosePseudoConsole auf, um die verbleibenden Bits freizugeben, die der HPCON-Handle gedrückt hält.
Beispiele
Eine vollständige exemplarische Vorgehensweise zur Verwendung dieser Funktion zum Einrichten einer Pseudoconsole-Sitzung finden Sie unter Erstellen einer Pseudoconsole-Sitzung.
Anforderungen
| Mindest unterstützter Client | Windows 11 24H2 (Build 26100) [nur Desktop-Apps] |
| Unterstützter Mindestserver | Windows Server 2025 (Build 26100) |
| Kopfzeile | ConsoleApi.h (über WinCon.h, Windows.h einschließen) |
| Bibliothek | Kernel32.lib |
| DLL | Kernel32.dll |