NDK_FN_GET_CONNECTION_DATA fungsi panggilan balik (ndkpi.h)

Fungsi NdkGetConnectionData (NDK_FN_GET_CONNECTION_DATA) mendapatkan nilai batas baca dan data privat yang dikirim oleh peer.

Sintaks

NDK_FN_GET_CONNECTION_DATA NdkFnGetConnectionData;

NTSTATUS NdkFnGetConnectionData(
  [in]            NDK_CONNECTOR *pNdkConnector,
  [out, optional] ULONG *pInboundReadLimit,
  [out, optional] ULONG *pOutboundReadLimit,
                  PVOID pPrivateData,
                  ULONG *pPrivateDataLength
)
{...}

Parameter

[in] pNdkConnector

Penunjuk ke objek konektor NDK (NDK_CONNECTOR).

[out, optional] pInboundReadLimit

Jumlah maksimum operasi baca masuk yang sedang berlangsung untuk memungkinkan pada QP dikembalikan di lokasi ini.

[out, optional] pOutboundReadLimit

Jumlah maksimum operasi baca keluar yang sedang berlangsung untuk memungkinkan QP dikembalikan di lokasi ini.

pPrivateData

Penunjuk ke data privat yang dikembalikan.

pPrivateDataLength

Panjangnya, dalam byte, dari data privat yang disediakan dalam parameter pPrivateData .

Catatan Nilai output tidak menunjukkan panjang aktual data privat yang disimpan dalam buffer. Konsumen NDK harus menegosiasikan format dan panjang data privat yang sebenarnya. Untuk informasi selengkapnya tentang data privat, lihat bagian Keterangan.
 

Nilai kembali

Fungsi NdkGetConnectionData mengembalikan salah satu kode NTSTATUS berikut.

Menampilkan kode Deskripsi
STATUS_SUCCESS
Operasi berhasil diselesaikan.
STATUS_BUFFER_TOO_SMALL
Nilai dalam parameter *pPrivateDataLength menentukan ukuran buffer yang terlalu kecil untuk menyimpan data privat koneksi. *pPrivateDataLength diperbarui dengan ukuran yang diperlukan.
Kode status lainnya
Terjadi kesalahan.

Keterangan

Fungsi NdkGetConnectionData mendapatkan data privat yang dikirim oleh peer dengan permintaan sambungkan, terima, atau tolak dan nilai batas baca masuk dan keluar yang efektif. Nilai-nilai ini berasal dari nilai yang diminta rekan lokal dan jarak jauh dan batas maksimum penyedia.

Untuk mengakses data privat dan nilai batas baca masuk (IRD) dan batas baca keluar (ORD) yang efektif dari sisi aktif, konsumen NDK dapat memanggil NdkGetConnectionData untuk objek konektor yang diteruskan ke fungsi NDK_FN_CONNECT_EVENT_CALLBACK .

Untuk mengakses data privat dan nilai IRD dan ORD yang efektif dari sisi pasif, konsumen dapat memanggil NdkGetConnectionData untuk objek konektor yang NDK_FN_CONNECT atau NDK_FN_CONNECT_WITH_SHARED_ENDPOINT berhasil diselesaikan Konsumen NDK tidak akan memanggil fungsi ini setelah memanggil fungsi NDK_FN_ACCEPT di sisi pasif atau fungsi NDK_FN_COMPLETE_CONNECT di sisi aktif.

Jika parameter pPrivateData adalah NULL dan *pPrivateDataLength adalah nol, penyedia NDK harus mengembalikan STATUS_SUCCESS dan menyimpan ukuran buffer data privat (RDS) yang diperlukan di *pPrivateDataLength.

CatatanUkuran buffer data privat (RDS) yang diperlukan tidak menunjukkan bahwa peer telah mengirim data privat sebanyak itu. Konsumen NDK harus, di kedua ujungnya, memiliki skema umum untuk memungkinkan akhir penerimaan menentukan apakah ada data privat atau tidak di buffer data privat. RDS mungkin berbeda untuk setiap koneksi.
 
Jika pPrivateData adalah NULL dan *pPrivateDataLength lebih besar dari nol, ini adalah permintaan yang tidak valid. Konsumen tidak boleh melakukan ini.

Jika pPrivateData bukan NULL, penyedia harus menyalin data privat ke buffer di pPrivateData hingga yang lebih kecil dari *pPrivateDataLength atau RDS dalam byte.

Jika *pPrivateDataLength lebih besar dari atau sama dengan RDS, penyedia harus mengembalikan STATUS_SUCCESS. Jika tidak, penyedia harus mengembalikan STATUS_BUFFER_TOO_SMALL. Dalam kedua kasus, penyedia harus menyimpan RDS di *pPrivateDataLength sebelum kembali.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Tidak ada yang didukung, Didukung di NDIS 6.30 dan yang lebih baru.
Server minimum yang didukung Windows Server 2012
Target Platform Windows
Header ndkpi.h (termasuk Ndkpi.h)
IRQL <=DISPATCH_LEVEL

Lihat juga

NDK_CONNECTOR

NDK_CONNECTOR_DISPATCH