Fungsi NmrClientAttachProvider (netioddk.h)

Fungsi NmrClientAttachProvider melampirkan modul klien ke modul penyedia.

Sintaks

NTSTATUS NmrClientAttachProvider(
  [in]  HANDLE                 NmrBindingHandle,
  [in]  __drv_aliasesMem PVOID ClientBindingContext,
  [in]  const VOID             *ClientDispatch,
  [out] PVOID                  *ProviderBindingContext,
  [out] const VOID             **ProviderDispatch
);

Parameter

[in] NmrBindingHandle

Handel yang digunakan oleh NMR untuk mewakili pengikatan antara modul klien dan modul penyedia. NMR meneruskan handel ini ke modul klien saat memanggil fungsi panggilan balik ClientAttachProvider modul klien.

[in] ClientBindingContext

Penunjuk ke konteks yang disediakan penelepon untuk pengikatan antara modul klien dan modul penyedia. Modul klien menggunakan konteks ini untuk melacak status pengikatan. Konten konteks pengikatan modul klien buram untuk modul penyedia. Modul penyedia meneruskan pointer ini ke modul klien setiap kali memanggil salah satu fungsi panggilan balik NPI modul klien yang memerlukan konteks pengikatan modul klien. Modul klien harus memastikan bahwa konteks ini tetap valid dan tinggal dalam memori selama modul penyedia dilampirkan ke modul klien.

[in] ClientDispatch

Penunjuk ke struktur konstanta yang berisi tabel pengiriman fungsi panggilan balik NPI untuk modul klien. Modul klien harus memastikan bahwa struktur ini tetap valid dan tinggal dalam memori selama modul penyedia dilampirkan ke modul klien. Isi strukturnya khusus untuk NPI. Jika NPI tidak menentukan struktur tabel pengiriman klien, modul klien harus mengatur parameter ini ke NULL.

[out] ProviderBindingContext

Penunjuk ke variabel yang menerima penunjuk ke konteks modul penyedia untuk pengikatan antara modul klien dan modul penyedia. Modul penyedia menggunakan konteks ini untuk melacak status pengikatan. Konten konteks pengikatan modul penyedia buram ke modul klien. Modul klien meneruskan pointer ini ke modul penyedia setiap kali memanggil salah satu fungsi NPI modul penyedia yang memerlukan konteks pengikatan modul penyedia.

[out] ProviderDispatch

Penunjuk ke variabel yang menerima penunjuk ke struktur yang berisi tabel pengiriman
Fungsi NPI untuk modul penyedia. Isi strukturnya khusus untuk NPI.

Nilai kembali

Fungsi NmrClientAttachProvider mengembalikan salah satu kode NTSTATUS berikut:

Menampilkan kode Deskripsi
STATUS_SUCCESS
Modul klien berhasil dilampirkan ke modul penyedia.
STATUS_NOINTERFACE
Modul penyedia tidak dilampirkan ke modul klien.
Kode status lainnya
Terjadi kesalahan.

Keterangan

Modul klien memanggil fungsi NmrClientAttachProvider dari fungsi panggilan balik ClientAttachProvider untuk melampirkan dirinya ke modul penyedia.

Saat modul klien memanggil fungsi NmrClientAttachProvider , NMR memanggil fungsi panggilan balik ProviderAttachClient modul penyedia untuk menyelesaikan proses lampiran. Fungsi NmrClientAttachProvider mengembalikan kode status yang dikembalikan oleh fungsi panggilan balik ProviderAttachClient modul penyedia.

Jika fungsi NmrClientAttachProvider tidak mengembalikan STATUS_SUCCESS, modul klien harus melakukan pembersihan data yang diperlukan yang terkandung dalam struktur konteks pengikatannya. Modul klien kemudian harus membebaskan memori untuk struktur konteks pengikatannya jika secara dinamis mengalokasikan memori untuk struktur.

Jika fungsi NmrClientAttachProvider mengembalikan STATUS_SUCCESS dan modul klien secara dinamis mengalokasikan memori untuk konteks pengikatannya, modul klien harus membebaskan memori yang dialokasikan saat NMR memanggil modul klienFungsi panggilan balik ClientCleanupBindingContext setelah modul klien dan modul penyedia dilepas satu sama lain.

Jika fungsi NmrClientAttachProvider mengembalikan STATUS_SUCCESS, modul klien harus menyimpan pointer yang dikembalikan dalam parameter ProviderBindingContext dan ProviderDispatch sehingga dapat memanggil fungsi NPI modul penyedia.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Tersedia di Windows Vista dan versi yang lebih baru dari sistem operasi Windows.
Target Platform Desktop
Header netioddk.h (termasuk Wsk.h)
Pustaka Netio.lib
IRQL PASSIVE_LEVEL

Lihat juga

ClientAttachProvider

ClientCleanupBindingContext

ProviderAttachClient