Makro NdisMCmMakeCallComplete (ndis.h)

NdisMCmMakeCallComplete mengembalikan status akhir permintaan klien, yang sebelumnya dikembalikan driver MCM NDIS_STATUS_PENDING, untuk melakukan panggilan keluar.

Sintaks

void NdisMCmMakeCallComplete(
   _S_,
   _VH_,
   _PH_,
   _CC_,
   _CP_
);

Parameter

_S_

Menentukan status akhir upaya untuk membuat koneksi, baik NDIS_STATUS_SUCCESS atau penelepon yang ditentukan NDIS_STATUS_ XXX kecuali NDIS_STATUS_PENDING.

_VH_

Menentukan handel ke VC yang dibuat klien, yang diperoleh driver MCM sebagai parameter input ke fungsi ProtocolCoCreateVc dan, baru-baru ini, dari CallMgrVcContext diteruskan ke fungsi ProtocolCmMakeCall-nya .

_PH_

Menentukan handel ke pihak awal pada VC multipoint yang dibuat klien, yang diperoleh driver MCM sebagai parameter input ke fungsi ProtocolCmMakeCall-nya . Jika NdisVcHandle yang diberikan mewakili VC point-to-point, parameter ini adalah NULL.

_CC_

Menentukan handel ke area konteks penduduk yang dialokasikan pemanggil, di mana driver MCM akan mempertahankan informasi status per pihak, atau parameter ini ADALAH NULL jika NdisPartyHandle adalah NULL. Untuk VC multipoint, NDIS meneruskan handel CallManagerPartyContext yang disediakan driver MCM ini di semua panggilan berikutnya ke fungsi ProtocolCmXxx yang menyangkut pihak ini. Jika Status selain NDIS_STATUS_SUCCESS, NDIS mengabaikan parameter ini.

_CP_

Penunjuk ke struktur jenis CO_CALL_PARAMETERS yang menentukan parameter panggilan yang disiapkan untuk koneksi ini jika Status NDIS_STATUS_SUCCESS.

Nilai kembali

Tidak ada

Keterangan

Driver MCM harus memanggil NdisMCmMakeCallComplete dengan NDIS_STATUS_SUCCESS hanya jika siap untuk melakukan transfer data pada VC. Artinya, driver MCM telah bernegosiasi dengan jaringan untuk membuat parameter panggilan untuk VC, menyiapkan NIC untuk parameter panggilan tersebut, dan disebut NdisMCmActivateVc untuk memberi tahu NDIS tentang aktivasi VC.

Driver MCM harus memanggil NdisMCmMakeCallComplete jika fungsi ProtocolCmMakeCall sebelumnya dikembalikan NDIS_STATUS_PENDING untuk NdisVcHandle yang diberikan. Klien, yang memulai panggilan keluar yang tertunda, tidak dapat menggunakan VC untuk melakukan transfer hingga driver miniport memanggil NdisMCmMakeCallComplete dengan NDIS_STATUS_SUCCESS.

Bahkan jika koneksi yang dicoba gagal, NDIS maupun klien tidak dapat merilis sumber daya yang mereka alokasikan untuk mempertahankan status sampai panggilan driver MCM ke NdisMCmMakeCallComplete menyebabkan panggilan ke klien tersebut Fungsi ProtocolClMakeCallComplete . Bahkan, mengabaikan untuk memanggil NdisMCmMakeCallComplete untuk upaya yang gagal untuk mengatur koneksi seperti itu menyebabkan kebocoran memori di driver MCM juga; ini mencegah klien merobek VC yang dibuatnya untuk panggilan keluar yang gagal, sehingga fungsi ProtocolCoDeleteVc driver MCM tidak dipanggil untuk merilis sumber daya yang dialokasikan driver miniport untuk VC tersebut.

Jika driver MCM melewati kesalahan, seperti NDIS_STATUS_FAILURE, untuk Status, driver MCM harus mempertimbangkan NdisPartyHandle, jika ada, tidak valid ketika NdisMCmMakeCallComplete mengembalikan kontrol. CM dapat merilis (atau menginisialisasi ulang untuk digunakan kembali) sumber daya apa pun yang dialokasikan untuk mempertahankan status bagi pihak tertentu setelah NdisMCmMakeCallComplete mengembalikan kontrol. Fungsi ProtocolCoDeleteVc driver MCM kemudian akan dipanggil untuk merilis sumber daya apa pun yang dialokasikan driver miniport untuk melacak status VC yang dibuat klien setiap kali driver MCM meneruskan status kesalahan ke NdisMCmMakeCallComplete.

Dalam rangka menyiapkan panggilan keluar yang dimulai klien, driver MCM dapat memodifikasi parameter panggilan yang disediakan klien yang awalnya diteruskan ke fungsi ProtocolCmMakeCall-nya . Jika ya, driver MCM harus melewati modifikasinya di buffer di CallParameters ketika memanggil NdisMCmMakeCallComplete. Jika klien menemukan parameter panggilan yang dimodifikasi ini tidak dapat diterima, itu kemudian akan merobek panggilan, yang juga menyebabkan panggilan ke fungsi ProtocolCoDeleteVc driver MCM.

Hanya driver miniport berorientasi koneksi yang menyediakan dukungan manajemen panggilan terintegrasi yang dapat memanggil NdisMCmMakeCallComplete. Manajer panggilan mandiri, yang mendaftarkan diri dengan NDIS sebagai driver protokol, panggil NdisCmMakeCallComplete sebagai gantinya.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Didukung untuk driver NDIS 6.0 dan NDIS 5.1 (lihat NdisMCmMakeCallComplete (NDIS 5.1)) di Windows Vista. Didukung untuk driver NDIS 5.1 (lihat NdisMCmMakeCallComplete (NDIS 5.1)) di Windows XP.
Target Platform Desktop
Header ndis.h (termasuk Ndis.h)
IRQL <= DISPATCH_LEVEL
Aturan kepatuhan DDI Irql_MCM_Function(ndis)

Lihat juga

CO_CALL_PARAMETERS

NdisAllocateFromNPagedLookasideList

NdisClMakeCall

NdisCmMakeCallComplete

ProtocolClMakeCallComplete

ProtocolCmMakeCall

ProtocolCoDeleteVc