PROTOCOL_CL_REGISTER_SAP_COMPLETE fungsi panggilan balik (ndis.h)
Klien NDIS berorientasi koneksi yang menerima panggilan masuk harus memiliki fungsi ProtocolClRegisterSapComplete untuk menyelesaikan operasi asinkron yang dimulai dengan NdisClRegisterSap. Jika tidak, fungsi ProtocolClRegisterSapComplete yang terdaftar dari driver protokol tersebut hanya dapat mengembalikan kontrol.
Sintaks
PROTOCOL_CL_REGISTER_SAP_COMPLETE ProtocolClRegisterSapComplete;
void ProtocolClRegisterSapComplete(
[in] NDIS_STATUS Status,
[in] NDIS_HANDLE ProtocolSapContext,
[in] PCO_SAP Sap,
[in] NDIS_HANDLE NdisSapHandle
)
{...}
Parameter
[in] Status
Menentukan status akhir panggilan klien ke NdisClRegisterSap, yang bisa menjadi salah satu dari berikut ini:
NDIS_STATUS_SUCCESS
SAP telah terdaftar baik dengan NDIS maupun manajer panggilan, yang kemudian akan memanggil NdisCmDispatchIncomingCall setiap kali menerima penawaran panggilan masuk yang diarahkan ke SAP yang diberikan, sehingga menyebabkan NDIS memanggil klien Fungsi ProtocolClIncomingCall .
NDIS_STATUS_RESOURCES
NDIS atau manajer panggilan tidak dapat mengalokasikan dan/atau menginisialisasi sumber daya yang diperlukan untuk mendaftar dan memelihara SAP.
NDIS_STATUS_INVALID_DATA
Klien menyediakan spesifikasi yang tidak valid di Sap ke NDIS, yang diteruskannya ke fungsi ProtocolCmRegisterSap manajer panggilan untuk validasi.
NDIS_STATUS_XXX
Manajer panggilan mengalami kesalahan dalam mencoba mendaftarkan SAP dan NDIS yang diberikan menyebarkan status kegagalan yang ditentukan CM ini kepada klien.
[in] ProtocolSapContext
Menentukan handel ke area konteks per SAP klien, yang awalnya disediakan klien ke NDIS ketika disebut NdisClRegisterSap. Jika pendaftaran berhasil, NDIS mempertahankan handel konteks ini dan menggunakannya kemudian dalam panggilan ke fungsi ProtocolClIncomingCall klien yang berkaitan dengan SAP ini.
[in] Sap
Arahkan ke buffer yang dialokasikan klien yang berisi spesifikasi SAP yang akan dibuka. Klien awalnya meneruskan pointer ini ke NdisClRegisterSap.
[in] NdisSapHandle
Jika Status NDIS_STATUS_SUCCESS, menentukan handel valid yang disediakan NDIS ke SAP terdaftar ini, secara efektif asosiasi yang dibuat dengan NDIS antara klien dan manajer panggilan tertentu untuk SAP yang ditentukan klien. Jika tidak, parameter ini ADALAH NULL. Klien harus menyimpan handel yang valid, sebaiknya di area ProtocolSapContext-nya , untuk panggilan akhirnya ke NdisClDeregisterSap.
Nilai kembali
Tidak ada
Keterangan
NDIS memanggil ProtocolClRegisterSapComplete untuk menunjukkan bahwa panggilan klien sebelumnya ke NdisClRegisterSap telah diproses oleh NDIS dan, jika NDIS tidak gagal dalam panggilan, oleh manajer panggilan tempat klien berbagi NdisAfHandle yang diteruskannya ke NdisClRegisterSap.
Untuk menerima panggilan masuk melalui NIC berorientasi koneksi, klien ProtocolCoAfRegisterNotify atau Fungsi ProtocolClOpenAfCompleteEx biasanya mendaftarkan satu atau beberapa SAP dengan manajer panggilan.
Untuk mendaftarkan setiap SAP, klien memanggil NdisClRegisterSap, meneruskan NdisAfHandle yang mengidentifikasi manajer panggilan tempat klien ingin menerima pemberitahuan panggilan masuk, dan NDIS mengembalikan klien NdisSapHandle ke SAP terdaftar jika panggilan klien ke NdisClRegisterSap berhasil. ProtocolClRegisterSapComplete harus menyimpan setiap NdisSapHandle yang valid, biasanya di area ProtocolSapContext per-SAP klien sehingga dapat merilis SAP nanti dengan NdisClDeregisterSap.
Format SAP khusus untuk manajer panggilan. Jika manajer panggilan tidak mengenali SAP yang coba didaftarkan klien atau jika SAP yang ditentukan sudah digunakan, manajer panggilan dapat gagal dalam pendaftaran SAP.
ProtocolClRegisterSapComplete harus memeriksa Status input untuk NDIS_STATUS_SUCCESS sebelum menjanjikan lebih lanjut. Jika upaya untuk mendaftarkan SAP gagal,
ProtocolClRegisterSapComplete dapat merilis area konteks per-SAP dan buffer di Sap yang dialokasikan klien atau menyiapkannya untuk digunakan kembali dalam panggilan lain ke NdisClRegisterSap.
Klien dapat menerima panggilan masuk pada SAP bahkan saat pendaftaran SAP masih tertunda, yaitu, sebelum fungsi ProtocolClRegisterSapComplete dipanggil.
Contoh
Untuk menentukan fungsi ProtocolClRegisterSapComplete , Anda harus terlebih dahulu memberikan deklarasi fungsi yang mengidentifikasi jenis fungsi yang Anda tentukan. Windows menyediakan sekumpulan tipe fungsi untuk pengandar. Mendeklarasikan fungsi menggunakan jenis fungsi membantu Analisis Kode untuk Driver, Pemverifikasi Driver Statis (SDV), dan alat verifikasi lainnya menemukan kesalahan, dan itu adalah persyaratan untuk menulis driver untuk sistem operasi Windows.Misalnya, untuk menentukan fungsi ProtocolClRegisterSapComplete yang diberi nama "MyClRegisterSapComplete", gunakan jenis PROTOCOL_CL_REGISTER_SAP_COMPLETE seperti yang ditunjukkan dalam contoh kode ini:
PROTOCOL_CL_REGISTER_SAP_COMPLETE MyClRegisterSapComplete;
Kemudian, terapkan fungsi Anda sebagai berikut:
_Use_decl_annotations_
VOID
MyClRegisterSapComplete(
NDIS_STATUS Status,
NDIS_HANDLE ProtocolSapContext,
PCO_SAP Sap,
NDIS_HANDLE NdisSapHandle
)
{...}
Jenis fungsi PROTOCOL_CL_REGISTER_SAP_COMPLETE ditentukan dalam file header Ndis.h. Untuk mengidentifikasi kesalahan secara lebih akurat saat Anda menjalankan alat analisis kode, pastikan untuk menambahkan anotasi Use_decl_annotations ke definisi fungsi Anda. Anotasi Use_decl_annotations memastikan bahwa anotasi yang diterapkan ke jenis fungsi PROTOCOL_CL_REGISTER_SAP_COMPLETE dalam file header digunakan. Untuk informasi selengkapnya tentang persyaratan untuk deklarasi fungsi, lihat Mendeklarasikan Fungsi dengan Menggunakan Jenis Peran Fungsi untuk Driver NDIS.
Untuk informasi tentang Use_decl_annotations, lihat Perilaku Fungsi Anotasi.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Didukung untuk driver NDIS 6.0 dan NDIS 5.1 (lihat ProtocolClRegisterSapComplete (NDIS 5.1)) di Windows Vista. Didukung untuk driver NDIS 5.1 (lihat ProtocolClRegisterSapComplete (NDIS 5.1)) di Windows XP. |
Target Platform | Windows |
Header | ndis.h (termasuk Ndis.h) |
IRQL | <= DISPATCH_LEVEL |
Lihat juga
NdisFreeToNPagedLookasideListSaran 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