PFN_WSK_GET_NAME_INFO fungsi panggilan balik (wsk.h)

Fungsi WskGetNameInfo menyediakan terjemahan independen protokol dari alamat transportasi ke nama host.

Sintaks

PFN_WSK_GET_NAME_INFO PfnWskGetNameInfo;

NTSTATUS PfnWskGetNameInfo(
  [in]            PWSK_CLIENT Client,
  [in]            PSOCKADDR SockAddr,
  [in]            ULONG SockAddrLength,
  [out, optional] PUNICODE_STRING NodeName,
  [out, optional] PUNICODE_STRING ServiceName,
  [in]            ULONG Flags,
  [in, optional]  PEPROCESS OwningProcess,
  [in, optional]  PETHREAD OwningThread,
  [in, out]       PIRP Irp
)
{...}

Parameter

[in] Client

[in] Penunjuk ke struktur WSK_CLIENT yang dikembalikan melalui parameter WskProviderNpi dari Fungsi WskCaptureProviderNPI .

[in] SockAddr

[in] Penunjuk ke struktur SOCKADDR yang berisi alamat IP dan nomor port soket.

[in] SockAddrLength

[in] Menentukan panjang, dalam byte, dari buffer yang diacu oleh parameter SockAddr . Nilai SockAddrLength tidak boleh melebihi ukuran struktur SOCKADDR_STORAGE .

[out, optional] NodeName

[keluar] Penunjuk opsional ke struktur UNICODE_STRING yang berisi string Unicode yang mewakili nama host (node). Jika berhasil, nama host Unicode ditulis sebagai Nama Domain yang Sepenuhnya Memenuhi Syarat (FQDN) secara default. Pemanggil harus menyediakan buffer UNICODE_STRING cukup besar untuk menahan nama host Unicode, yang mencakup karakter NULL yang mengakhiri. Jika parameter NodeBuffer adalah NULL, pemanggil tidak ingin menerima string nama host. NodeBuffer dan ServiceBuffer tidak boleh keduanya null.

[out, optional] ServiceName

[keluar] Penunjuk opsional ke struktur UNICODE_STRING yang berisi string Unicode yang mewakili nama layanan yang terkait dengan nomor port. Pemanggil harus menyediakan buffer UNICODE_STRING cukup besar untuk menahan nama layanan Unicode, yang mencakup karakter NULL yang mengakhiri. Jika parameter NodeBuffer adalah NULL, pemanggil tidak ingin menerima string nama layanan. NodeBuffer dan ServiceBuffer tidak boleh keduanya null.

[in] Flags

[in] Nilai ULONG yang digunakan untuk menyesuaikan pemrosesan fungsi ini.

Bendera berikut tersedia:

NI_DGRAM

Menunjukkan bahwa layanan tersebut adalah layanan datagram. Bendera ini diperlukan untuk beberapa layanan yang menyediakan nomor port yang berbeda untuk layanan UDP dan TCP.

NI_NAMEREQD

Menunjukkan bahwa nama host yang tidak dapat diselesaikan oleh DNS menghasilkan kesalahan.

NI_NOFQDN

Menghasilkan host lokal yang hanya memiliki Relative Distinguished Name (RDN) yang dikembalikan dalam parameter NodeName .

NI_NUMERICHOST

Menunjukkan bahwa fungsi mengembalikan bentuk numerik dari nama host alih-alih namanya, pencarian DNS terbalik. Bentuk numerik nama host juga dikembalikan jika nama host tidak dapat diselesaikan oleh DNS.

NI_NUMERICSERV

Menunjukkan bahwa fungsi mengembalikan nomor port layanan alih-alih namanya. Selain itu, jika nama host tidak ditemukan untuk alamat IP (127.0.0.2, misalnya), nama host dikembalikan sebagai alamat IP.

[in, optional] OwningProcess

[in] Penunjuk opsional ke proses tempat fungsi mengambil konteks keamanan. Konteks keamanan ini menunjukkan konteks akun pengguna di mana fungsi memproses permintaan resolusi nama.

Jika parameter ini adalah NULL, fungsi memproses permintaan resolusi nama dalam konteks akun lokal yang telah ditentukan sebelumnya dengan hak istimewa minimal.

Jika parameter ini bukan NULL dan token peniruan berlaku untuk utas panggilan, fungsi ini gagal dan mengembalikan STATUS_INVALID_PARAMETER.

[in, optional] OwningThread

[in] Penunjuk opsional ke utas tempat fungsi mengambil konteks keamanan. Parameter ini bisa non-NULL hanya jika OwningProcess bukan NULL. Jika tidak, fungsi ini gagal dan mengembalikan STATUS_INVALID_PARAMETER.

Jika parameter ini bukan NULL dan token peniruan berlaku untuk utas panggilan, fungsi ini gagal dan mengembalikan STATUS_INVALID_PARAMETER.

[in, out] Irp

[masuk/keluar] Pointer ke paket permintaan I/O (IRP) untuk digunakan untuk menyelesaikan permintaan secara asinkron. Setelah menyelesaikan permintaan, Irp ->Iostatus.Information akan menyimpan kode status yang dikembalikan.

Nilai kembali

WskGetNameInfo mengembalikan salah satu kode NTSTATUS berikut:

Menampilkan kode Deskripsi
STATUS_INVALID_PARAMETER
Parameter yang tidak valid ditentukan.
STATUS_NO_MATCH
Nama host tidak dapat diatasi.
STATUS_SUCCESS
Fungsi berhasil diselesaikan. Jika aplikasi WSK menentukan pointer ke IRP di Parameter Irp , IRP akan diselesaikan dengan status berhasil.
STATUS_PENDING
Subsistem WSK tidak dapat segera menyelesaikan fungsi. Subsistem WSK akan menyelesaikan IRP setelah menyelesaikan operasi kontrol. Status operasi kontrol akan dikembalikan di bidang IoStatus.Status dari IRP.
Kode status lainnya
Terjadi kesalahan. IRP akan diselesaikan dengan status kegagalan.

Keterangan

Proses di mana parameter OwningProcess menunjuk, atau utas tempat proses OwningThread menunjuk, menunjukkan konteks keamanan untuk fungsi ini. Akun pengguna yang ditunjukkan oleh konteks keamanan menunjukkan konteks untuk permintaan resolusi nama fungsi.

Persyaratan

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

Lihat juga

SOCKADDR

SOCKADDR_STORAGE

UNICODE_STRING

WSK_CLIENT

WskCaptureProviderNPI

WskGetAddressInfo