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 |
---|---|
|
Der asynchrone Vorgang steht noch aus. |
|
Das Schließen des Kanals wurde durch einen Aufruf von WsAbortChannel abgebrochen, während der Kanal geschlossen wurde. |
|
Der Kanal befand sich in einem unangemessenen Zustand (siehe Abschnitt "Hinweise"). |
|
Die Verbindung mit dem Remoteendpunkt wurde beendet. |
|
Der Remoteendpunkt konnte die Anforderung nicht verarbeiten. |
|
Die Eingabedaten hatten nicht das erwartete Format oder hatten nicht den erwarteten Wert. |
|
Der Vorgang wurde innerhalb der zugewiesenen Zeit nicht abgeschlossen. |
|
Ein Kontingent wurde überschritten. |
|
Unzureichender Arbeitsspeicher, um den Vorgang abzuschließen. |
|
Mindestens ein Argument ist ungültig. |
|
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 |