Freigeben über


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