PFN_WSK_SEND_TO fungsi panggilan balik (wsk.h)
Fungsi WskSendTo mengirim data datagram ke alamat transportasi jarak jauh.
Sintaks
PFN_WSK_SEND_TO PfnWskSendTo;
NTSTATUS PfnWskSendTo(
[in] PWSK_SOCKET Socket,
[in] PWSK_BUF Buffer,
ULONG Flags,
[in, optional] PSOCKADDR RemoteAddress,
[in] ULONG ControlInfoLength,
[in, optional] PCMSGHDR ControlInfo,
[in, out] PIRP Irp
)
{...}
Parameter
[in] Socket
Penunjuk ke struktur WSK_SOCKET yang menentukan objek soket untuk soket datagram untuk mengirim datagram.
[in] Buffer
Penunjuk ke struktur WSK_BUF yang diinisialisasi yang menjelaskan buffer data yang berisi datagram yang dikirim melalui soket.
Flags
Parameter ini disediakan untuk penggunaan sistem. Aplikasi WSK harus mengatur parameter ini ke nol.
[in, optional] RemoteAddress
Penunjuk ke struktur yang menentukan alamat transportasi jarak jauh untuk mengirim datagram. Penunjuk ini harus menjadi penunjuk ke jenis struktur SOCKADDR tertentu yang sesuai dengan keluarga alamat yang ditentukan aplikasi WSK saat membuat soket.
Jika aplikasi WSK telah menetapkan alamat transportasi jarak jauh tetap atau alamat transportasi tujuan tetap untuk soket datagram, penunjuk ini bersifat opsional dan mungkin NULL. Jika NULL, datagram dikirim ke alamat transportasi jarak jauh tetap atau alamat transportasi tujuan tetap. Jika non-NULL, datagram dikirim ke alamat transportasi jarak jauh yang ditentukan.
Untuk informasi selengkapnya tentang mengatur alamat transportasi jarak jauh tetap untuk soket datagram, lihat SIO_WSK_SET_REMOTE_ADDRESS.
Untuk informasi selengkapnya tentang mengatur alamat transportasi tujuan tetap untuk soket datagram, lihat SIO_WSK_SET_SENDTO_ADDRESS.
[in] ControlInfoLength
Jumlah byte data dalam buffer yang diacu oleh parameter ControlInfo . Jika tidak ada informasi kontrol yang terkait dengan datagram, parameter ControlInfoLength harus nol.
[in, optional] ControlInfo
Penunjuk ke buffer yang berisi informasi kontrol yang terkait dengan datagram yang sedang dikirim. Data informasi kontrol terdiri dari satu atau beberapa objek data kontrol, yang masing-masing dimulai dengan struktur CMSGHDR . Jika tidak ada informasi kontrol yang terkait dengan datagram, parameter ini harus NULL.
[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
WskSendTo mengembalikan salah satu kode NTSTATUS berikut:
Menampilkan kode | Deskripsi |
---|---|
|
Datagram berhasil dikirim melalui soket. IRP akan diselesaikan dengan status keberhasilan. Bidang IoStatus.Information dari IRP berisi jumlah byte yang dikirim. |
|
Subsistem WSK tidak dapat segera mengirim datagram melalui soket. Subsistem WSK akan menyelesaikan IRP setelah mengirim datagram 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. |
|
Soket tidak lagi berfungsi. IRP akan diselesaikan dengan status kegagalan. Aplikasi WSK harus memanggil fungsi WskCloseSocket untuk menutup soket sesegera mungkin. |
|
Terjadi kesalahan. IRP akan diselesaikan dengan status kegagalan. |
Keterangan
Jika fungsi WskSendTo mengembalikan STATUS_PENDING, rantai MDL yang dijelaskan dalam struktur WSK_BUF yang ditunjukkan oleh parameter Buffer harus tetap terkunci dalam memori hingga IRP selesai. Selain itu, buffer yang diacu oleh parameter ControlInfo juga harus tetap valid sampai IRP selesai. Jika aplikasi WSK mengalokasikan rantai MDL atau buffer informasi kontrol dengan salah satu fungsi ExAllocateXxx , aplikasi tidak dapat membebaskan memori dengan fungsi ExFreeXxx yang sesuai sampai setelah IRP selesai. Jika aplikasi WSK mengalokasikan rantai MDL atau buffer informasi kontrol pada tumpukan, aplikasi tidak dapat kembali dari fungsi yang memanggil fungsi WskSendTo sampai setelah IRP selesai.
Subsistem WSK tidak melakukan buffering data saat mengirim datagram melalui soket. Oleh karena itu, panggilan ke fungsi WskSendTo 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_PROVIDER_DATAGRAM_DISPATCHSaran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk