PFN_WSK_SEND fungsi panggilan balik (wsk.h)

Fungsi WskSend mengirim data melalui soket berorientasi koneksi atau streaming ke alamat transportasi jarak jauh.

Sintaks

PFN_WSK_SEND PfnWskSend;

NTSTATUS PfnWskSend(
  [in]      PWSK_SOCKET Socket,
  [in]      PWSK_BUF Buffer,
  [in]      ULONG Flags,
  [in, out] PIRP Irp
)
{...}

Parameter

[in] Socket

Penunjuk ke struktur WSK_SOCKET yang menentukan objek soket untuk soket tempat mengirim data.

[in] Buffer

Penunjuk ke struktur WSK_BUF yang diinisialisasi yang menjelaskan buffer data yang berisi data yang dikirim melalui soket.

[in] Flags

Nilai ULONG yang berisi bitwise OR dari kombinasi bendera berikut:

WSK_FLAG_NODELAY

Mengarahkan transportasi yang mendasar untuk segera mengirim data, dan data yang sebelumnya diantrekan, ke aplikasi jarak jauh tanpa penundaan.

Bendera ini didukung oleh protokol transportasi Microsoft TCP/IP. Bendera ini mungkin tidak didukung oleh protokol transportasi lainnya.

[in, out] Irp

Penunjuk ke IRP yang dialokasikan penelepon yang digunakan subsistem WSK untuk menyelesaikan operasi pengiriman secara asinkron. Untuk informasi selengkapnya tentang menggunakan runtime integrasi dengan fungsi WSK, lihat Menggunakan IRP dengan Fungsi Kernel Winsock.

Nilai kembali

WskSend mengembalikan salah satu kode NTSTATUS berikut:

Menampilkan kode Deskripsi
STATUS_SUCCESS
Data berhasil dikirim melalui soket. IRP akan diselesaikan dengan status keberhasilan. Bidang IoStatus.Information dari IRP berisi jumlah byte yang dikirim.
STATUS_PENDING
Subsistem WSK tidak dapat segera mengirim data melalui soket. Subsistem WSK akan menyelesaikan IRP setelah mengirim data melalui soket. Status operasi pengiriman akan dikembalikan di bidang IoStatus.Status dari IRP. Jika operasi berhasil, bidang IoStatus.Information dari IRP akan berisi jumlah byte yang dikirim.
STATUS_FILE_FORCED_CLOSED
Soket tidak lagi berfungsi. IRP akan diselesaikan dengan status kegagalan. Aplikasi WSK harus memanggil fungsi WskCloseSocket untuk menutup soket sesegera mungkin.
STATUS_NOT_SUPPORTED
Bendera yang ditentukan tidak didukung oleh transportasi jaringan yang mendasar.
Kode status lainnya
Terjadi kesalahan. IRP akan diselesaikan dengan status kegagalan.

Keterangan

Aplikasi WSK dapat memanggil fungsi WskSend hanya pada soket berorientasi koneksi atau streaming yang sebelumnya telah terhubung ke alamat transportasi jarak jauh. Soket berorientasi koneksi tersambung ke alamat transportasi jarak jauh dengan salah satu metode berikut:

  • Aplikasi WSK menghubungkan soket dengan memanggil fungsi WskConnect .
  • Aplikasi WSK membuat, mengikat, dan menyambungkan soket dengan memanggil fungsi WskSocketConnect .
  • Subsistem WSK menghubungkan soket ketika aplikasi WSK menerima permintaan koneksi masuk pada soket mendengarkan.
Jika fungsi WskSend mengembalikan STATUS_PENDING, rantai MDL yang dijelaskan dalam struktur WSK_BUF yang ditunjukkan oleh parameter Buffer harus tetap terkunci dalam memori hingga IRP selesai.

Subsistem WSK tidak melakukan buffering data saat mengirim data melalui soket. Oleh karena itu, panggilan ke fungsi WskSend tidak akan diselesaikan oleh subsistem WSK sampai semua data benar-benar dikirim.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Tersedia di Windows Vista dan versi yang lebih baru dari sistem operasi Windows.
Target Platform Universal
Header wsk.h (termasuk Wsk.h)
IRQL <= DISPATCH_LEVEL

Lihat juga

WSK_BUF

WSK_PROVIDER_CONNECTION_DISPATCH

WSK_PROVIDER_STREAM_DISPATCH

WSK_SOCKET

WskCloseSocket

WskReceive

WskReceiveEvent