WsCloseChannel-Funktion (webservices.h)

Schließt einen angegebenen Kanal.

Syntax

HRESULT WsCloseChannel(
  [in]           WS_CHANNEL             *channel,
  [in, optional] const WS_ASYNC_CONTEXT *asyncContext,
  [in, optional] WS_ERROR               *error
);

Parameter

[in] channel

Zeiger auf eine WS_CHANNEL-Struktur , die den zu schließenden Kanal darstellt.

[in, optional] asyncContext

Zeiger auf eine WS_ASYNC_CONTEXT Datenstruktur, die Informationen zum asynchronen Aufrufen der Funktion enthält. Übergeben Sie einen NULL-Wert , um die Funktion synchron aufzurufen.

[in, optional] error

Zeiger auf eine WS_ERROR-Struktur , in der zusätzliche Fehlerinformationen gespeichert werden, wenn die Funktion fehlschlägt.

Rückgabewert

Wenn die Funktion erfolgreich ist, wird NO_ERROR zurückgegeben. Andernfalls wird ein HRESULT-Fehlercode zurückgegeben.

Rückgabecode Beschreibung
WS_S_ASYNC
Der asynchrone Vorgang steht noch aus.
WS_E_OPERATION_ABORTED
Das Schließen des Kanals wurde durch einen Aufruf von WsAbortChannel abgebrochen, während der Kanal geschlossen wurde.
WS_E_INVALID_OPERATION
Der Kanal befand sich in einem unangemessenen Zustand (siehe Abschnitt "Hinweise").
WS_E_ENDPOINT_DISCONNECTED
Die Verbindung mit dem Remoteendpunkt wurde beendet.
WS_E_ENDPOINT_FAILURE
Der Remoteendpunkt konnte die Anforderung nicht verarbeiten.
WS_E_INVALID_FORMAT
Die Eingabedaten hatten nicht das erwartete Format oder hatten nicht den erwarteten Wert.
WS_E_OPERATION_TIMED_OUT
Der Vorgang wurde innerhalb der zugewiesenen Zeit nicht abgeschlossen.
WS_E_QUOTA_EXCEEDED
Ein Kontingent wurde überschritten.
E_OUTOFMEMORY
Unzureichender Arbeitsspeicher, um den Vorgang abzuschließen.
E_INVALIDARG
Mindestens ein Argument ist ungültig.
Andere Fehler
Diese Funktion gibt möglicherweise andere Fehler zurück, die oben nicht aufgeführt sind.

Hinweise

Wenn Sie einen Kanal öffnen oder einen Kanal erfolgreich akzeptieren, müssen Sie ihn schließen, wenn er nicht mehr benötigt wird. Nachdem ein Kanal geschlossen wurde, können die zugeordneten Ressourcen sicher freigegeben werden.

Der Prozess zum Schließen des Kanals wartet, bis alle bereits initiierten E/A-Vorgänge abgeschlossen sind.

Wenn derzeit keine Nachrichten für den Kanal gelesen oder geschrieben werden, versucht der Kanal, ordnungsgemäß herunterzufahren. Andernfalls werden alle E/A-Vorgänge, die noch auf dem Kanal selbst ausstehen, abgebrochen, und der Kanal wird unhöflich heruntergefahren.

Wenn der Kanal versucht, ordnungsgemäß herunterzufahren, aber ein Fehler auftritt, gibt WsCloseChannel einen Fehler zurück, aber der Kanal wird weiterhin geschlossen.

Dieser Vorgang ist nur zulässig, wenn sich der Kanal in WS_CHANNEL_STATE_OPEN oder WS_CHANNEL_STATE_FAULTED Zustand befindet.

Durch das Schließen eines Kanals werden alle Nachrichten, die gerade gelesen oder geschrieben werden, automatisch nicht mehr zugeordnet. Daher ist es nicht erforderlich, WsAbandonMessage vor dem Aufruf von WsCloseChannel) aufzurufen.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 7 [Desktop-Apps | UWP-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 R2 [Desktop-Apps | UWP-Apps]
Zielplattform Windows
Kopfzeile webservices.h
Bibliothek WebServices.lib
DLL WebServices.dll