PROTOCOL_CL_ADD_PARTY_COMPLETE fungsi panggilan balik (ndis.h)

Fungsi ProtocolClAddPartyComplete diperlukan untuk klien NDIS berorientasi koneksi yang menyiapkan koneksi multipoint. Klien tersebut harus memiliki fungsi ProtocolClAddPartyComplete untuk menyelesaikan operasi asinkron yang mereka mulai dengan NdisClAddParty. Jika tidak, fungsi ProtocolClAddPartyComplete yang terdaftar dari driver protokol seperti itu hanya dapat mengembalikan kontrol.

Catatan Anda harus mendeklarasikan fungsi dengan menggunakan jenis PROTOCOL_CL_ADD_PARTY_COMPLETE . Untuk informasi selengkapnya, lihat bagian Contoh berikut ini.
 

Sintaks

PROTOCOL_CL_ADD_PARTY_COMPLETE ProtocolClAddPartyComplete;

void ProtocolClAddPartyComplete(
  [in] NDIS_STATUS Status,
  [in] NDIS_HANDLE ProtocolPartyContext,
  [in] NDIS_HANDLE NdisPartyHandle,
  [in] PCO_CALL_PARAMETERS CallParameters
)
{...}

Parameter

[in] Status

Menentukan status akhir operasi add-party yang dimulai klien, yang dapat menjadi salah satu dari berikut ini:

NDIS_STATUS_SUCCESS

Pihak yang diberikan ditambahkan pada VC multipoint aktif klien.

NDIS_STATUS_RESOURCES

NDIS tidak dapat mengalokasikan sumber daya yang memadai untuk melacak pihak baru.

NDIS_STATUS_FAILURE

Klien meneruskan NdisVcHandle yang tidak valid ke NdisClAddParty.

NDIS_STATUS_XXX

Fungsi ProtocolCmAddParty manajer panggilan mengembalikan nilai yang ditentukan CM untuk menunjukkan mengapa ia tidak dapat menambahkan pihak ke VC.

[in] ProtocolPartyContext

Menentukan handel yang disediakan klien yang awalnya diteruskan ke NdisClAddParty.

[in] NdisPartyHandle

Jika Status NDIS_STATUS_SUCCESS, handel yang disediakan NDIS ini mewakili hubungan antara manajer panggilan dan klien mengenai pihak ini. Jika tidak, upaya untuk menambahkan pihak gagal dan klien harus menganggap parameter ini sebagai handel yang tidak valid.

[in] CallParameters

Penunjuk ke struktur jenis CO_CALL_PARAMETERS, awalnya disiapkan oleh klien untuk panggilannya ke NdisClAddParty tetapi mungkin kemudian dimodifikasi oleh manajer panggilan.

Mengembalikan nilai

Tidak ada

Keterangan

Panggilan ke ProtocolClAddPartyComplete menunjukkan penyelesaian operasi asinkron yang dimulai ketika klien memanggil NdisClAddParty. Jika Status input diatur ke apa pun selain NDIS_STATUS_SUCCESS, ProtocolClAddPartyComplete dapat merilis atau menggunakan kembali buffer yang dialokasikan klien di ProtocolPartyContext dan di CallParameters .

Jika upaya untuk menambahkan pihak berhasil, ProtocolClAddPartyComplete harus menyimpan input NdisPartyHandle untuk panggilan berikutnya ke fungsi pustaka NDIS mengenai pihak ini di area ProtocolPartyContext klien. Misalnya, klien harus meneruskan handel ini dalam panggilan berikutnya ke NdisClDropParty pada akhirnya kecuali pihak jarak jauh yang diwakilinya menutup koneksinya terlebih dahulu.

Struktur di CallParameters awalnya dialokasikan dan diinisialisasi oleh klien, yang meneruskan pointer ini ke
NdisClAddParty. Namun, manajer panggilan mungkin telah memodifikasi nilai yang disediakan klien untuk mencerminkan hasil negosiasi CM dengan jaringan atau dengan peer sinyal saat memproses permintaan add-party klien. Untuk menentukan apakah manajer panggilan melakukan modifikasi apa pun, ProtocolClAddPartyComplete dapat memeriksa anggota Bendera struktur ini apakah CALL_PARAMETERS_CHANGED diatur. Jika demikian, ProtocolClAddPartyComplete harus memperbarui status per pihak yang dipertahankan klien untuk panggilan ini di ProtocolPartyContext kecuali jika menemukan modifikasi CM tidak dapat diterima. Protokol sinyal tertentu menentukan apa yang dapat dilakukan klien dalam kasus ini. Biasanya, klien memanggil NdisClDropParty jika menemukan parameter panggilan yang dimodifikasi CM tidak dapat diterima.

Tergantung pada protokol sinyal manajer panggilan, parameter lalu lintas di CallParameters dapat identik untuk semua pihak pada koneksi multipoint tertentu. Artinya, karena klien manajer panggilan seperti itu menambahkan pihak pada koneksi multipoint yang awalnya disiapkan klien dengan NdisClMakeCall, klien hanya dapat menyediakan alamat target setiap pihak dan meninggalkan parameter lalu lintas seperti yang awalnya disiapkan untuk VC multipoint setiap kali memanggil NdisClAddParty.

Contoh

Untuk menentukan fungsi ProtocolClAddPartyComplete , 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 ProtocolClAddPartyComplete yang diberi nama "MyClAddPartyComplete", gunakan jenis PROTOCOL_CL_ADD_PARTY_COMPLETE seperti yang ditunjukkan dalam contoh kode ini:

PROTOCOL_CL_ADD_PARTY_COMPLETE MyClAddPartyComplete;

Kemudian, terapkan fungsi Anda sebagai berikut:

_Use_decl_annotations_
VOID
 MyClAddPartyComplete(
    NDIS_STATUS  Status,
    NDIS_HANDLE  ProtocolPartyContext,
    NDIS_HANDLE  NdisPartyHandle,
    PCO_CALL_PARAMETERS  CallParameters
    )
  {...}

Jenis fungsi PROTOCOL_CL_ADD_PARTY_COMPLETE didefinisikan 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_ADD_PARTY_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 ProtocolClAddPartyComplete (NDIS 5.1)) di Windows Vista. Didukung untuk driver NDIS 5.1 (lihat ProtocolClAddPartyComplete (NDIS 5.1)) di Windows XP.
Target Platform Windows
Header ndis.h (termasuk Ndis.h)
IRQL <= DISPATCH_LEVEL

Lihat juga

CO_CALL_PARAMETERS

NdisClAddParty

NdisClDropParty

NdisClMakeCall

NdisCmAddPartyComplete

NdisMCmAddPartyComplete

ProtocolClIncomingDropParty

ProtocolCmAddParty