PROTOCOL_CO_AF_REGISTER_NOTIFY fungsi panggilan balik (ndis.h)

Fungsi ProtocolCoAfRegisterNotify digunakan oleh klien NDIS yang berorientasi koneksi. Semua klien NDIS yang berorientasi koneksi harus memiliki fungsi ProtocolCoAfRegisterNotify yang berfungsi penuh. Manajer panggilan berorientasi koneksi yang berdiri sendiri telah mendaftarkan fungsi ProtocolCoAfRegisterNotify yang hanya mengembalikan kontrol.

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

Sintaks

PROTOCOL_CO_AF_REGISTER_NOTIFY ProtocolCoAfRegisterNotify;

VOID() ProtocolCoAfRegisterNotify(
  [in] NDIS_HANDLE ProtocolBindingContext,
  [in] PCO_ADDRESS_FAMILY AddressFamily
)
{...}

Parameter

[in] ProtocolBindingContext

Menentukan handel ke area konteks yang dialokasikan klien tempat protokol klien mempertahankan status run-time per pengikatan. Fungsi ProtocolBindAdapterEx klien menyediakan handel ini ketika disebut NdisOpenAdapterEx.

[in] AddressFamily

Penunjuk ke buffer yang menjelaskan dukungan protokol sinyal yang disediakan oleh manajer panggilan yang baru saja mendaftarkan layanan ini dengan NDIS dengan memanggil NdisCmRegisterAddressFamilyEx atau NdisMCmRegisterAddressFamilyEx.

Mengembalikan nilai

Tidak ada

Keterangan

Panggilan ke ProtocolCoAfRegisterNotify mengiklankan layanan manajemen panggilan manajer panggilan atau driver MCM tertentu pada NIC berorientasi koneksi yang mendasar tempat klien terikat.

ProtocolCoAfRegisterNotify memeriksa data di AddressFamily untuk menentukan apakah klien dapat menggunakan layanan manajer panggilan khusus ini. Apakah klien dapat melakukan modifikasi dalam data yang disediakan (M)CM di AddressFamily tergantung pada dukungan protokol sinyal tertentu dari manajer panggilan.

Jika klien menemukan layanan manajemen panggilan yang ditawarkan tidak dapat diterima, ProtocolCoAfRegisterNotify mengembalikan kontrol, dan NDIS mungkin memanggil ProtocolCoAfRegisterNotify lagi dengan handel ProtocolBindingContext yang sama dan spesifikasi AF yang disediakan oleh ini atau manajer panggilan lain juga terikat ke driver miniport yang mendasar yang sama. Jika tidak, ProtocolAfRegisterNotify mengalokasikan area konteks per AF untuk klien dan memanggil NdisClOpenAddressFamilyEx dengan penunjuk AddressFamily . Jika panggilan ini berhasil, klien telah mendaftarkan fungsi ProtocolClXxx-nya dengan NDIS untuk operasi berorientasi koneksi berikutnya menggunakan layanan manajer panggilan ini.

Misalnya, ProtocolCoAfRegisterNotify atau ProtocolClOpenAfCompleteEx mungkin memanggil NdisInitializeNPagedLookasideList satu atau beberapa kali dalam persiapan untuk alokasi dinamis dan rilis area konteks per-SAP, per-VC, dan/atau per pihak yang kemudian dibutuhkan klien.

Jika menerima panggilan masuk, ProtocolCoAfRegisterNotify atau klien Fungsi ProtocolClOpenAfCompleteEx biasanya mendaftarkan satu atau beberapa SAP dengan manajer panggilan. Setelah membuka AF manajer panggilan tersebut, klien mungkin melanjutkan untuk mengalokasikan area status per SAP dan memanggil NdisClRegisterSap satu atau beberapa kali dengan NdisAfHandle yang diperolehnya dari NdisClOpenAddressFamilyEx. Jika melakukan panggilan keluar, klien mungkin melanjutkan untuk mengalokasikan area status per VC dan membuat VC dengan NdisCoCreateVc untuk mengantisipasi permintaan masuk dari salah satu kliennya sendiri untuk melakukan panggilan keluar ke simpul jarak jauh.

Contoh

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

PROTOCOL_CO_AF_REGISTER_NOTIFY MyCoAfRegisterNotify;

Kemudian, terapkan fungsi Anda sebagai berikut:

_Use_decl_annotations_
VOID
 MyCoAfRegisterNotify(
    NDIS_HANDLE  ProtocolBindingContext,
    PCO_ADDRESS_FAMILY  AddressFamily
    )
  {...}

Jenis fungsi PROTOCOL_CO_AF_REGISTER_NOTIFY 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_CO_AF_REGISTER_NOTIFY 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 ProtocolCoAfRegisterNotify (NDIS 5.1)) di Windows Vista. Didukung untuk driver NDIS 5.1 (lihat ProtocolCoAfRegisterNotify (NDIS 5.1)) di Windows XP.
Target Platform Windows
Header ndis.h (termasuk Ndis.h)
IRQL PASSIVE_LEVEL

Lihat juga

CO_ADDRESS_FAMILY

NdisClOpenAddressFamilyEx

NdisClRegisterSap

NdisCmRegisterAddressFamilyEx

NdisCoCreateVc

NdisInitializeNPagedLookasideList NdisMCmRegisterAddressFamilyEx

NdisOpenAdapterEx

ProtocolBindAdapterEx

ProtocolClOpenAfCompleteEx