Bagikan melalui


Fungsi WsCloseChannel (webservices.h)

Menutup saluran tertentu.

Sintaks

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

Parameter

[in] channel

Arahkan ke struktur WS_CHANNEL yang mewakili saluran untuk ditutup.

[in, optional] asyncContext

Arahkan ke struktur data WS_ASYNC_CONTEXT yang berisi informasi untuk memanggil fungsi secara asinkron. Teruskan nilai NULL untuk memanggil fungsi secara sinkron.

[in, optional] error

Penunjuk ke struktur WS_ERROR tempat informasi kesalahan tambahan disimpan jika fungsi gagal.

Mengembalikan nilai

Jika fungsi berhasil, fungsi akan mengembalikan NO_ERROR; jika tidak, kode kesalahan HRESULT akan dikembalikan.

Menampilkan kode Deskripsi
WS_S_ASYNC
Operasi asinkron masih tertunda.
WS_E_OPERATION_ABORTED
Penutupan saluran dibatalkan oleh panggilan ke WsAbortChannel saat saluran ditutup.
WS_E_INVALID_OPERATION
Saluran dalam status tidak pantas (lihat bagian Keterangan).
WS_E_ENDPOINT_DISCONNECTED
Koneksi dengan titik akhir jarak jauh dihentikan.
WS_E_ENDPOINT_FAILURE
Titik akhir jarak jauh tidak dapat memproses permintaan.
WS_E_INVALID_FORMAT
Data input tidak dalam format yang diharapkan atau tidak memiliki nilai yang diharapkan.
WS_E_OPERATION_TIMED_OUT
Operasi tidak selesai dalam waktu yang dialokasikan.
WS_E_QUOTA_EXCEEDED
Kuota terlampaui.
E_OUTOFMEMORY
Tidak cukup memori untuk menyelesaikan operasi.
E_INVALIDARG
Satu atau beberapa argumen tidak valid.
Kesalahan Lainnya
Fungsi ini dapat mengembalikan kesalahan lain yang tidak tercantum di atas.

Keterangan

Jika Anda membuka saluran atau berhasil menerima saluran, Anda harus menutupnya saat tidak lagi diperlukan. Setelah saluran ditutup, sumber daya terkait dapat dibebaskan dengan aman.

Proses penutupan saluran akan menunggu I/O yang sudah dimulai dan tertunda selesai.

Jika saat ini tidak ada pesan yang sedang dibaca atau ditulis untuk saluran, saluran akan mencoba mematikan dengan baik. Jika tidak, semua I/O yang masih tertunda di saluran itu sendiri dibatalkan dan saluran melakukan pematian yang kasar.

Jika saluran mencoba mematikan dengan baik tetapi mengalami kesalahan, WsCloseChannel akan mengembalikan kesalahan, tetapi saluran masih akan ditutup.

Operasi ini hanya diperbolehkan jika saluran berada dalam status WS_CHANNEL_STATE_OPEN atau WS_CHANNEL_STATE_FAULTED.

Menutup saluran secara otomatis memisahkan pesan apa pun yang sedang dalam proses dibaca atau ditulis. Oleh karena itu, tidak perlu memanggil WsAbandonMessage sebelum memanggil WsCloseChannel).

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 7 [aplikasi desktop | Aplikasi UWP]
Server minimum yang didukung Windows Server 2008 R2 [aplikasi desktop | Aplikasi UWP]
Target Platform Windows
Header webservices.h
Pustaka WebServices.lib
DLL WebServices.dll