SO_WSK_EVENT_CALLBACK

Opsi soket SO_WSK_EVENT_CALLBACK memungkinkan aplikasi WSK untuk mengaktifkan dan menonaktifkan fungsi panggilan balik peristiwa soket. Opsi soket ini hanya berlaku untuk soket mendengarkan, soket datagram, soket berorientasi koneksi, dan soket dasar yang telah mendaftarkan antarmuka ekstensi yang setidaknya satu fungsi panggilan balik peristiwa ditentukan.

Jika aplikasi WSK menggunakan opsi soket ini untuk mengaktifkan atau menonaktifkan fungsi panggilan balik peristiwa pada soket mendengarkan atau soket datagram, itu harus melakukannya setelah soket terikat ke alamat transportasi lokal.

Jika aplikasi WSK menggunakan opsi soket ini untuk mengaktifkan atau menonaktifkan fungsi panggilan balik peristiwa pada soket berorientasi koneksi, aplikasi harus melakukannya setelah soket terhubung ke alamat transportasi jarak jauh.

Untuk mengaktifkan atau menonaktifkan fungsi panggilan balik peristiwa pada soket, aplikasi WSK memanggil fungsi WskControlSocket dengan parameter berikut.

Parameter Nilai

RequestType

WskSetOption

ControlCode

SO_WSK_EVENT_CALLBACK

Level

SOL_SOCKET

Ukuran Input

sizeof(WSK_EVENT_CALLBACK_CONTROL)

InputBuffer

Penunjuk ke struktur WSK_EVENT_CALLBACK_CONTROL

OutputSize

0

OutputBuffer

NULL

OutputSizeReturned

NULL

Aplikasi WSK tidak menentukan penunjuk ke IRP saat memanggil fungsi WskControlSocket untuk mengaktifkan fungsi panggilan balik peristiwa pada soket.

Aplikasi WSK dapat secara opsional menentukan penunjuk ke IRP saat memanggil fungsi WskControlSocket untuk menonaktifkan fungsi panggilan balik peristiwa pada soket.

Ketika aplikasi WSK memanggil WskControlSocket untuk menonaktifkan fungsi panggilan balik peristiwa, subsistem WSK berulah sebagai berikut:

  • Jika tidak ada panggilan yang sedang berlangsung ke fungsi panggilan balik peristiwa yang sedang dinonaktifkan saat aplikasi WSK memanggil fungsi WskControlSocket , fungsi panggilan balik peristiwa dinonaktifkan dan fungsi WskControlSocket mengembalikan STATUS_SUCCESS. Jika aplikasi WSK menentukan IRP, IRP selesai dengan status keberhasilan.

  • Jika ada panggilan yang sedang berlangsung ke fungsi panggilan balik peristiwa yang sedang dinonaktifkan saat aplikasi WSK memanggil fungsi WskControlSocket dan aplikasi WSK menentukan IRP, fungsi WskControlSocket mengembalikan STATUS_PENDING. Subsistem WSK menonaktifkan fungsi panggilan balik peristiwa dan menyelesaikan IRP setelah semua panggilan yang sedang berlangsung ke fungsi panggilan balik peristiwa telah dikembalikan.

  • Jika ada panggilan yang sedang berlangsung ke fungsi panggilan balik peristiwa yang sedang dinonaktifkan ketika aplikasi WSK memanggil fungsi WskControlSocket dan aplikasi WSK tidak menentukan IRP, fungsi WskControlSocket mengembalikan STATUS_EVENT_PENDING. Subsistem WSK menonaktifkan fungsi panggilan balik peristiwa setelah semua panggilan yang sedang berlangsung ke fungsi panggilan balik peristiwa telah dikembalikan.

Saat mengaktifkan atau menonaktifkan salah satu fungsi panggilan balik peristiwa WSK standar, aplikasi WSK menetapkan anggota NpiId dari struktur WSK_EVENT_CALLBACK_CONTROL ke penunjuk ke pengidentifikasi Antarmuka Pemrograman Jaringan (NPI) WSK, NPI_WSK_INTERFACE_ID.

Saat mengaktifkan atau menonaktifkan fungsi panggilan balik apa pun untuk antarmuka ekstensi, aplikasi WSK mengatur anggota NpiId dari struktur WSK_EVENT_CALLBACK_CONTROL ke penunjuk ke pengidentifikasi NPI untuk antarmuka ekstensi tersebut.

Saat mengaktifkan fungsi panggilan balik peristiwa, aplikasi WSK dapat secara bersamaan mengaktifkan kombinasi fungsi panggilan balik peristiwa yang valid untuk kategori soket WSK tertentu. Aplikasi WSK secara bersamaan memungkinkan kombinasi ini dengan mengatur anggota EventMask dari struktur WSK_EVENT_CALLBACK_CONTROL ke bitwise ATAU bendera peristiwa untuk semua fungsi panggilan balik peristiwa yang sedang diaktifkan.

Saat menonaktifkan fungsi panggilan balik peristiwa, aplikasi WSK harus menonaktifkan setiap fungsi panggilan balik peristiwa secara independen. Aplikasi WSK secara independen menonaktifkan fungsi panggilan balik peristiwa dengan mengatur anggota EventMask dari struktur WSK_EVENT_CALLBACK_CONTROL ke bitwise ATAU bendera peristiwa untuk fungsi panggilan balik peristiwa yang sedang dinonaktifkan dan bendera WSK_EVENT_DISABLE.

Tabel berikut ini memperlihatkan bendera peristiwa yang valid untuk soket mendengarkan.

Bendera peristiwa Fungsi panggilan balik peristiwa

WSK_EVENT_ACCEPT

WskAcceptEvent

Tabel berikut ini memperlihatkan bendera peristiwa yang valid untuk soket datagram.

Bendera peristiwa Fungsi panggilan balik peristiwa

WSK_EVENT_RECEIVE_FROM

WskReceiveFromEvent

Tabel berikut ini memperlihatkan bendera peristiwa yang valid untuk soket berorientasi koneksi.

Bendera peristiwa Fungsi panggilan balik peristiwa

WSK_EVENT_DISCONNECT

WskDisconnectEvent

WSK_EVENT_RECEIVE

WskReceiveEvent

WSK_EVENT_SEND_BACKLOG

WskSendBacklogEvent

Soket mendengarkan dapat secara otomatis mengaktifkan fungsi panggilan balik peristiwa pada soket berorientasi koneksi yang diterima oleh soket mendengarkan. Aplikasi WSK secara otomatis mengaktifkan fungsi panggilan balik ini dengan mengaktifkan fungsi panggilan balik peristiwa soket berorientasi koneksi pada soket mendengarkan. Fungsi panggilan balik peristiwa secara otomatis diaktifkan pada soket berorientasi koneksi yang diterima hanya jika soket diterima oleh fungsi panggilan balik peristiwa WskAcceptEvent soket mendengarkan. Jika soket berorientasi koneksi diterima oleh fungsi WskAccept soket mendengarkan, fungsi panggilan balik peristiwa soket yang diterima tidak diaktifkan secara otomatis.

Setelah fungsi panggilan balik peristiwa berorientasi koneksi diaktifkan pada soket mendengarkan, fungsi tersebut tidak dapat dinonaktifkan pada soket mendengarkan. Jika fungsi panggilan balik peristiwa WskAcceptEvent dinonaktifkan dan kemudian diaktifkan kembali pada soket mendengarkan, fungsi panggilan balik peristiwa berorientasi koneksi yang awalnya diaktifkan pada soket mendengarkan tersebut akan terus diterapkan ke semua soket berorientasi koneksi yang diterima oleh fungsi panggilan balik peristiwa WskAcceptEvent .

Untuk informasi selengkapnya tentang mengaktifkan dan menonaktifkan fungsi panggilan balik peristiwa soket, lihat Mengaktifkan dan Menonaktifkan Fungsi Panggilan Balik Peristiwa.

Persyaratan

Versi

Tersedia di Windows Vista dan versi yang lebih baru dari sistem operasi Windows.

Header

Wsk.h (termasuk Wsk.h)