NPI_PROVIDER_ATTACH_CLIENT_FN fungsi panggilan balik (netioddk.h)
Fungsi panggilan balik ProviderAttachClient modul penyedia melampirkan modul penyedia ke modul klien.
Sintaks
NPI_PROVIDER_ATTACH_CLIENT_FN NpiProviderAttachClientFn;
NTSTATUS NpiProviderAttachClientFn(
[in] HANDLE NmrBindingHandle,
[in] PVOID ProviderContext,
[in] PNPI_REGISTRATION_INSTANCE ClientRegistrationInstance,
[in] 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.
[in] ProviderContext
Penunjuk ke konteks pendaftaran modul penyedia. Modul penyedia meneruskan pointer ini ke NMR ketika memanggil fungsi NmrRegisterProvider untuk mendaftarkan dirinya dengan NMR.
[in] ClientRegistrationInstance
Penunjuk ke NPI_REGISTRATION_INSTANCE struktur. Struktur ini berisi data pendaftaran modul klien.
[in] ClientBindingContext
Penunjuk ke konteks modul klien 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.
[in] ClientDispatch
Penunjuk ke struktur konstanta yang berisi tabel pengiriman fungsi panggilan balik NPI untuk modul klien. Isi strukturnya khusus untuk NPI. Jika NPI tidak menentukan struktur tabel pengiriman klien, maka pointer ini adalah NULL.
[out] ProviderBindingContext
Pointer ke variabel tempat modul penyedia akan menyimpan pointer ke konteksnya 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 penunjuk ini ke modul penyedia setiap kali memanggil salah satu fungsi NPI modul penyedia yang memerlukan konteks pengikatan modul penyedia. Modul penyedia harus memastikan bahwa konteks ini tetap valid dan tinggal dalam memori selama modul klien dilampirkan ke modul penyedia.
[out] ProviderDispatch
Penunjuk ke variabel tempat modul penyedia akan menyimpan pointer ke struktur konstan yang berisi tabel pengiriman fungsi NPI untuk modul penyedia. Modul penyedia harus memastikan bahwa struktur ini tetap valid dan tinggal dalam memori selama modul klien dilampirkan ke modul penyedia. Isi strukturnya khusus untuk NPI.
Nilai kembali
Fungsi panggilan balik ProviderAttachClient modul penyedia mengembalikan salah satu kode NTSTATUS berikut:
Menampilkan kode | Deskripsi |
---|---|
|
Modul penyedia berhasil dilampirkan ke modul klien. |
|
Modul penyedia tidak dilampirkan ke modul klien. |
|
Terjadi kesalahan. |
Keterangan
NMR memanggil fungsi panggilan balik ProviderAttachClient modul penyedia setiap kali modul klien memanggil fungsi NmrClientAttachProvider dengan handel yang mewakili pengikatan antara modul klien dan modul penyedia.
Modul penyedia dapat memeriksa data pendaftaran modul klien. Data ini berada dalam struktur yang ditunjukkan oleh parameter ClientRegistrationInstance . Modul penyedia menggunakan data ini untuk menentukan apakah modul akan dilampirkan ke modul klien:
- Jika modul penyedia menentukan bahwa modul akan dilampirkan ke modul klien, maka fungsi panggilan balik ProviderAttachClient harus melakukan hal berikut:
- Simpan pointer yang diteruskan dalam parameter ClientBindingContext dan ClientDispatch sehingga modul penyedia dapat melakukan panggilan ke fungsi NPI modul klien.
- Simpan handel yang diteruskan dalam parameter NmrBindingHandle . Modul penyedia meneruskan handel ini sebagai parameter ke Fungsi NmrProviderDetachClientComplete saat terlepas dari modul klien.
- Atur parameter ProviderBindingContext untuk menunjuk ke struktur konteks pengikatan modul penyedia untuk pengikatan antara modul klien dan modul penyedia.
- Atur parameter ProviderDispatch untuk menunjuk ke struktur yang berisi tabel pengiriman fungsi NPI modul penyedia.
- Kembalikan STATUS_SUCCESS.
- Jika modul penyedia menentukan bahwa modul tidak akan dilampirkan ke modul klien, maka fungsi panggilan balik ProviderAttachClient harus mengembalikan STATUS_NOINTERFACE.
NMR memanggil fungsi panggilan balik ProviderAttachClient modul penyedia di IRQL = PASSIVE_LEVEL.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Tersedia di Windows Vista dan versi yang lebih baru dari sistem operasi Windows. |
Target Platform | Windows |
Header | netioddk.h (termasuk Wsk.h) |
IRQL | PASSIVE_LEVEL |
Lihat juga
NmrProviderDetachClientComplete ProviderCleanupBindingContextSaran 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