WSManDisconnectShell-Funktion (wsman.h)
Trennt die Netzwerkverbindung einer aktiven Shell und der zugehörigen Befehle.
Syntax
void WSManDisconnectShell(
[in, out] WSMAN_SHELL_HANDLE shell,
DWORD flags,
[in] WSMAN_SHELL_DISCONNECT_INFO *disconnectInfo,
[in] WSMAN_SHELL_ASYNC *async
);
Parameter
[in, out] shell
Gibt das Handle an, das von einem Aufruf der WSManCreateShell-Funktion zurückgegeben wird. Dieser Parameter darf nicht NULL sein.
flags
Kann ein WSMAN_FLAG_SERVER_BUFFERING_MODE_DROP-Flag oder ein WSMAN_FLAG_SERVER_BUFFERING_MODE_BLOCK-Flag sein.
[in] disconnectInfo
Ein Zeiger auf eine WSMAN_SHELL_DISCONNECT_INFO Struktur, die ein Leerlauftimeout angibt, das die Serversitzung möglicherweise erzwingt. Wenn dieser Parameter NULL ist, wird das Timeout der Serversitzung im Leerlauf nicht geändert.
[in] async
Definiert eine asynchrone Struktur, die einen optionalen Benutzerkontext und eine obligatorische Rückruffunktion enthält. Weitere Informationen finden Sie unter WSMAN_SHELL_ASYNC. Dieser Parameter darf nicht NULL sein.
Rückgabewert
Keine
Bemerkungen
Mit dieser Funktion wird die Netzwerkverbindung mit einer aktiv verbundenen Serversitzung angehalten. Alle Vorgänge, die für die Shell instance ausgeführt werden, z. B. WSManRunShellCommand, WSManSendShellInput oder WSManSignalShell, müssen vor der Trennung abgeschlossen werden. Dadurch wird sichergestellt, dass alle über WSManSendShellInput gesendeten Daten von der Serversitzung empfangen werden, bevor die Shell die Verbindung trennt. Der Client kann optional den Serverpuffermodus mithilfe von Flags ändern. Das folgende Verhalten wird beobachtet:
- WSMAN_FLAG_SERVER_BUFFERING_MODE_DROP– Wenn Puffer voll sind, löscht der Server frühere Daten in Antwortstreampuffern, um sicherzustellen, dass der entsprechende Befehlsvorgang weiterhin ausgeführt wird.
-
WSMAN_FLAG_SERVER_BUFFERING_MODE_BLOCK: Wenn die Antwortdatenstrompuffer voll sind, blockiert der Server die Befehlsausführung. Wenn kein Flag angegeben ist, verwendet der Server weiterhin entweder den konfigurierten Modus oder den beim Erstellen der Shell angegebenen Modus. Bei einem Netzwerkfehler wird der folgende Fehler zurückgegeben, wenn der Client die Sitzung nicht kontaktieren kann, um die Shell zu trennen:
ERROR_WINRS_SHELL_DISCONNECT_OPERATION_NOT_GRACEFUL
Die Clientsitzung befindet sich weiterhin in einem getrennten Zustand, es ist jedoch nicht garantiert, dass alle vorherigen Vorgänge abgeschlossen wurden, bevor die Sitzung getrennt wird.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows 8 |
Unterstützte Mindestversion (Server) | Windows Server 2012 |
Zielplattform | Windows |
Kopfzeile | wsman.h |
Bibliothek | WsmSvc.lib |
DLL | WsmSvc.dll |