PROTOCOL_CL_OPEN_AF_COMPLETE_EX fungsi panggilan balik (ndis.h)

Fungsi ProtocolClOpenAfCompleteEx menyelesaikan pembukaan keluarga alamat (AF) yang dimulai ketika klien CoNDIS yang disebut fungsi NdisClOpenAddressFamilyEx .

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

Sintaks

PROTOCOL_CL_OPEN_AF_COMPLETE_EX ProtocolClOpenAfCompleteEx;

void ProtocolClOpenAfCompleteEx(
  [in] NDIS_HANDLE ProtocolAfContext,
  [in] NDIS_HANDLE NdisAfHandle,
  [in] NDIS_STATUS Status
)
{...}

Parameter

[in] ProtocolAfContext

Handel yang disediakan klien ke area konteksnya untuk alamat AF. Klien mengalokasikan area konteks ini dan meneruskan handel ini ke NDIS dalam panggilannya ke Fungsi NdisClOpenAddressFamilyEx .

[in] NdisAfHandle

Handel yang disediakan NDIS ke AF, jika Status NDIS_STATUS_SUCCESS. Jika tidak, parameter ini ADALAH NULL. Handel ini mewakili asosiasi yang didirikan NDIS antara klien dan manajer panggilan yang terikat dengan adaptor miniport CoNDIS. Jika handel bukan NULL, klien harus menyimpan handel untuk digunakan dalam panggilan berikutnya ke fungsi NdisClXxx dan NdisCoXxx .

[in] Status

Status akhir panggilan klien ke NdisClOpenAddressFamilyEx, yang dapat berupa salah satu hal berikut:

NDIS_STATUS_SUCCESS

AF telah dibuka, sehingga klien dapat menginisialisasi statusnya di ProtocolAfContext dan menggunakan handel yang dikembalikan dari NdisAfHandle dalam panggilan berikutnya ke fungsi NdisClXxx dan NdisCoXxx , seperti NdisCoOidRequest.

NDIS_STATUS_RESOURCES

Operasi yang diminta gagal karena NDIS atau manajer panggilan tidak dapat mengalokasikan memori yang cukup atau menginisialisasi status yang digunakan salah satu dari mereka untuk melacak pembukaan AF klien yang ditentukan ProtocolAfContext .

NDIS_STATUS_FAILURE

NDIS gagal dalam panggilan, mungkin karena salah satu alasan berikut:

  • AF yang diberikan tidak cocok dengan AF apa pun yang didaftarkan untuk driver miniport yang mendasar tempat pemanggil terikat.
  • Pengikatan adaptor penelepon ditutup.
  • Manajer panggilan yang mendaftarkan AF yang ditentukan menutup pengikatannya ke adaptor miniport yang mendasar.

Nilai kembali

Tidak ada

Keterangan

Fungsi ProtocolClOpenAfCompleteEx diperlukan untuk klien CoNDIS. Klien CoNDIS harus menyediakan ProtocolClOpenAfCompleteEx untuk menyelesaikan operasi asinkron yang dimulai klien dengan memanggil Fungsi NdisClOpenAddressFamilyEx .

NDIS memanggil ProtocolClOpenAfCompleteEx untuk menunjukkan bahwa beberapa atau semua hal berikut telah terjadi:

  • Jika semua parameter klien Fungsi ProtocolCoAfRegisterNotify yang diteruskan ke fungsi NdisClOpenAddressFamilyEx valid, NDIS disebut fungsi ProtocolCmOpenAf dari manajer panggilan yang baru saja mendaftarkan AF yang ditentukan dengan NDIS.
  • Manajer panggilan telah memeriksa spesifikasi bahwa fungsi ProtocolCoAfRegisterNotify klien diteruskan ke NdisClOpenAddressFamilyEx pada parameter AddressFamily dan mengembalikan apakah itu valid untuk manajer panggilan ini ke NDIS.
Jika upaya klien untuk membuka AF gagal, NDIS membersihkan status tersimpannya sebelum memanggil ProtocolClOpenAfCompleteEx. Dalam hal ini, ProtocolClOpenAfCompleteEx dapat merilis sumber daya yang dialokasikan klien untuk panggilannya ke NdisClOpenAddressFamilyEx atau menyiapkannya untuk digunakan kembali.

Jika tidak, ProtocolClOpenAfCompleteEx harus menyiapkan status apa pun yang ditentukan klien yang diperlukan klien untuk operasi berikutnya pada AF yang baru dibuka. Secara khusus, klien harus menyimpan handel dari parameter NdisAfHandle , biasanya di area konteks ProtocolAfContext klien.

Jika klien menerima panggilan masuk, klien mungkin mengalokasikan area status titik akses per layanan (SAP) dan memanggil fungsi NdisClRegisterSap . Jika klien melakukan panggilan keluar, klien mungkin mengalokasikan area status koneksi per virtual (VC) dan membuat VC dengan fungsi NdisCoCreateVc untuk mempersiapkan permintaan masuk dari salah satu klien klien sendiri untuk melakukan panggilan keluar ke simpul jarak jauh.

NDIS memanggil ProtocolClOpenAfCompleteEx di IRQL = PASSIVE_LEVEL.

Contoh

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

PROTOCOL_CL_OPEN_AF_COMPLETE_EX MyClOpenAfCompleteEx;

Kemudian, terapkan fungsi Anda sebagai berikut:

_Use_decl_annotations_
VOID
 MyClOpenAfCompleteEx(
    NDIS_HANDLE  ProtocolAfContext,
    NDIS_HANDLE  NdisAfHandle,
    NDIS_STATUS  Status
    )
  {...}

Jenis fungsi PROTOCOL_CL_OPEN_AF_COMPLETE_EX 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_OPEN_AF_COMPLETE_EX 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 di NDIS 6.0 dan yang lebih baru.
Target Platform Windows
Header ndis.h (termasuk Ndis.h)
IRQL PASSIVE_LEVEL

Lihat juga

NdisClOpenAddressFamilyEx

NdisClRegisterSap

NdisCoCreateVc

NdisCooidRequest

ProtocolCmOpenAf

ProtocolCoAfRegisterNotify