PROTOCOL_CL_INCOMING_CALL fungsi panggilan balik (ndis.h)

Fungsi ProtocolClIncomingCall digunakan oleh klien berorientasi koneksi yang menerima panggilan masuk. Klien tersebut harus memiliki fungsi ProtocolClIncomingCall . Jika tidak, fungsi ProtocolClIncomingCall yang terdaftar dari driver protokol tersebut hanya dapat mengembalikan NDIS_STATUS_NOT_SUPPORTED.

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

Sintaks

PROTOCOL_CL_INCOMING_CALL ProtocolClIncomingCall;

NDIS_STATUS ProtocolClIncomingCall(
  [in]      NDIS_HANDLE ProtocolSapContext,
  [in]      NDIS_HANDLE ProtocolVcContext,
  [in, out] PCO_CALL_PARAMETERS CallParameters
)
{...}

Parameter

[in] ProtocolSapContext

Menentukan handel yang awalnya disediakan klien saat mendaftarkan SAP, yang cocok dengan penawaran panggilan masuk ini.

[in] ProtocolVcContext

Menentukan handel ke area konteks per VC klien, yang sebelumnya dikembalikan ke NDIS dengan fungsi ProtocolCoCreateVc-nya .

[in, out] CallParameters

Pointer ke buffer, diformat sebagai struktur CO_CALL_PARAMETERS , yang berisi parameter panggilan untuk panggilan yang ditawarkan ini.

Nilai kembali

ProtocolClIncomingCall dapat mengembalikan salah satu kode status berikut:

Menampilkan kode Deskripsi
NDIS_STATUS_SUCCESS
Klien menerima penawaran panggilan masuk.
NDIS_STATUS_PENDING
Klien menangani permintaan ini secara asinkron, dan akan memanggil Fungsi NdisClIncomingCallComplete saat operasi penutupan selesai.
NDIS_STATUS_XXX
Klien menolak penawaran panggilan masuk karena beberapa alasan yang ditentukan driver.

Keterangan

Panggilan ke ProtocolClIncomingCall menunjukkan bahwa manajer panggilan telah menerima permintaan melalui jaringan dari serekan sinyal untuk membuat koneksi dengan klien ini. Artinya, permintaan untuk menyiapkan koneksi seperti itu diarahkan ke SAP yang sebelumnya terdaftar di manajer panggilan oleh klien ini.

Tergantung pada protokol sinyal yang didukung oleh manajer panggilan, ProtocolClIncomingCall dapat memodifikasi parameter lalu lintas sebagai bagian dari proses negosiasi penerimaan penawaran panggilan masuk dan/atau, jika manajer panggilan mendukung QoS, kualitas spesifikasi layanan di CallParameters . Klien harus menyalin informasi apa pun yang diperlukan kemudian dari struktur buffer ini jika menerima panggilan yang ditawarkan.

Dengan asumsi manajer panggilan menemukan modifikasi klien, jika ada, dapat diterima, NDIS selanjutnya memanggil fungsi ProtocolClIncomingCallConnected klien ketika menjadi mungkin untuk transfer terjadi pada VC aktif yang mewakili koneksi ke klien pada simpul jarak jauh yang awalnya memulai penawaran panggilan. Jika klien mengembalikan parameter panggilan yang dimodifikasi yang tidak dapat diterima, manajer panggilan dapat merobek VC yang dibuatnya untuk penawaran ini, sehingga menyebabkan panggilan ke klien ProtocolClIncomingCloseCall lalu ProtocolCoDeleteVc berfungsi sebagai gantinya.

Contoh

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

PROTOCOL_CL_INCOMING_CALL MyClIncomingCall;

Kemudian, terapkan fungsi Anda sebagai berikut:

_Use_decl_annotations_
NDIS_STATUS
 MyClIncomingCall(
    NDIS_HANDLE  ProtocolSapContext,
    NDIS_HANDLE  ProtocolVcContext,
    PCO_CALL_PARAMETERS  CallParameters
    )
  {...}

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

Lihat juga

CO_CALL_PARAMETERS

NdisClIncomingCallComplete

NdisClRegisterSap

NdisCmDispatchIncomingCall

NdisMCmDispatchIncomingCall

ProtocolClCallConnected

ProtocolClIncomingCloseCall

ProtocolCoCreateVc

ProtocolCoDeleteVc