PFN_WSK_GET_REMOTE_ADDRESS fungsi panggilan balik (wsk.h)

Fungsi WskGetRemoteAddress mengambil alamat transportasi jarak jauh dari soket berorientasi koneksi atau aliran.

Sintaks

PFN_WSK_GET_REMOTE_ADDRESS PfnWskGetRemoteAddress;

NTSTATUS PfnWskGetRemoteAddress(
  [in]      PWSK_SOCKET Socket,
  [out]     PSOCKADDR RemoteAddress,
  [in, out] PIRP Irp
)
{...}

Parameter

[in] Socket

Penunjuk ke struktur WSK_SOCKET yang menentukan objek soket untuk soket yang sedang dikueri.

[out] RemoteAddress

Penunjuk ke buffer yang dialokasikan penelepon yang menerima alamat transportasi jarak jauh untuk soket. Buffer harus terletak di memori non-halaman. Buffer juga harus cukup besar untuk berisi jenis struktur SOCKADDR tertentu yang sesuai dengan keluarga alamat yang ditentukan aplikasi WSK saat membuat soket.

Untuk soket berorientasi koneksi yang diterima aplikasi WSK pada soket mendengarkan, keluarga alamat sama dengan keluarga alamat yang ditentukan aplikasi WSK saat membuat soket mendengarkan.

[in, out] Irp

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

Mengembalikan nilai

WskGetRemoteAddress mengembalikan salah satu kode NTSTATUS berikut:

Menampilkan kode Deskripsi
STATUS_SUCCESS
Alamat transportasi jarak jauh untuk soket berhasil diambil. IRP akan diselesaikan dengan status keberhasilan.
STATUS_PENDING
Subsistem WSK tidak dapat segera mengambil alamat transportasi jarak jauh untuk soket. Subsistem WSK akan menyelesaikan IRP setelah mengambil alamat transportasi jarak jauh untuk soket. Status operasi pengambilan akan dikembalikan di bidang IoStatus.Status dari IRP.
STATUS_INVALID_DEVICE_STATE
Soket tidak tersambung ke alamat transportasi jarak jauh. IRP akan diselesaikan dengan status kegagalan.
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.
Kode status lainnya
Terjadi kesalahan. IRP akan diselesaikan dengan status kegagalan.

Keterangan

Aplikasi WSK dapat memanggil fungsi WskGetRemoteAddress hanya pada soket berorientasi koneksi atau aliran yang telah terhubung ke alamat transportasi jarak jauh. Soket aliran tersambung ke alamat transportasi jarak jauh dengan memanggil fungsi WskConnect . Soket berorientasi koneksi tersambung ke alamat transportasi jarak jauh dengan salah satu cara berikut:

  • Aplikasi WSK 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 WskGetRemoteAddress mengembalikan STATUS_PENDING, buffer yang ditunjukkan oleh parameter RemoteAddress harus tetap valid sampai IRP selesai. Jika aplikasi WSK mengalokasikan buffer dengan salah satu fungsi ExAllocateXxx , aplikasi tidak dapat membebaskan memori dengan fungsi ExFreeXxx yang sesuai sampai setelah IRP selesai. Jika aplikasi WSK mengalokasikan buffer pada tumpukan, aplikasi tidak dapat kembali dari fungsi yang memanggil fungsi WskGetRemoteAddress hingga setelah IRP selesai.

Persyaratan

   
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

SOCKADDR

WSK_PROVIDER_CONNECTION_DISPATCH

WSK_PROVIDER_STREAM_DISPATCH

WSK_SOCKET

WskAccept

WskAcceptEvent

WskBind

WskCloseSocket

WskConnect

WskGetLocalAddress

WskSocketConnect