FILTER_CANCEL_SEND_NET_BUFFER_LISTS fungsi panggilan balik (ndis.h)

NDIS memanggil fungsi FilterCancelSendNetBufferLists driver filter untuk membatalkan transmisi semua struktur NET_BUFFER_LIST yang ditandai dengan pengidentifikasi pembatalan tertentu.

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

Sintaks

FILTER_CANCEL_SEND_NET_BUFFER_LISTS FilterCancelSendNetBufferLists;

void FilterCancelSendNetBufferLists(
  [in] NDIS_HANDLE FilterModuleContext,
  [in] PVOID CancelId
)
{...}

Parameter

[in] FilterModuleContext

Handel ke area konteks yang dialokasikan driver filter dalam fungsi FilterAttach-nya . Driver filter menggunakan area konteks ini untuk mempertahankan informasi status untuk modul filter.

[in] CancelId

Pengidentifikasi pembatalan. Pengidentifikasi ini menentukan struktur NET_BUFFER_LIST yang sedang dibatalkan.

Nilai kembali

Tidak ada

Keterangan

Fungsi FilterCancelSendNetBufferLists bersifat opsional. Jika driver filter tidak memfilter permintaan pengiriman, itu dapat mengatur titik masuk untuk fungsi ini ke NULL ketika memanggil Fungsi NdisFRegisterFilterDriver .

Filter driver yang mengantrekan NET_BUFFER_LIST struktur sebelum mengirim harus mengekspor fungsi FilterCancelSendNetBufferLists . Fungsi FilterCancelSendNetBufferLists membatalkan transmisi tertunda dari struktur NET_BUFFER_LIST yang ditentukan.

Ketika driver NDIS yang terlalu berlebih memanggil NdisCancelSendNetBufferLists atau Fungsi NdisFCancelSendNetBufferLists , NDIS memanggil fungsi FilterCancelSendNetBufferLists dari modul filter pada pengikatan.

Fungsi FilterCancelSendNetBufferLists driver filter melakukan operasi berikut:

  1. Melintasi daftar struktur NET_BUFFER_LIST antreannya untuk modul filter yang ditentukan dan memanggil NDIS_GET_NET_BUFFER_LIST_CANCEL_ID makro untuk mendapatkan pengidentifikasi pembatalan untuk setiap struktur NET_BUFFER_LIST yang diantrekan. Driver filter membandingkan ID pembatalan yang NDIS_GET_NET_BUFFER_LIST_CANCEL_ID kembali dengan ID pembatalan yang diteruskan NDIS ke FilterCancelSendNetBufferLists.
  2. Menghapus dari antrean kirim (membatalkan tautan) semua struktur NET_BUFFER_LIST yang pengidentifikasi pembatalannya cocok dengan pengidentifikasi pembatalan yang ditentukan.
  3. Memanggil Fungsi NdisFSendNetBufferListsComplete untuk semua struktur NET_BUFFER_LIST yang tidak ditautkan untuk mengembalikan struktur. Driver filter mengatur bidang status struktur NET_BUFFER_LIST ke NDIS_STATUS_SEND_ABORTED.
  4. Memanggil fungsi NdisFCancelSendNetBufferLists untuk meneruskan permintaan pengiriman pembatalan ke driver yang mendasar.
NDIS memanggil FilterCancelSendNetBufferLists di IRQL <= DISPATCH_LEVEL.

Contoh

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

FILTER_CANCEL_SEND_NET_BUFFER_LISTS MyCancelSendNetBufferLists;

Kemudian, terapkan fungsi Anda sebagai berikut:

_Use_decl_annotations_
VOID
 MyCancelSendNetBufferLists(
    NDIS_HANDLE  FilterModuleContext,
    PVOID  CancelId
    )
  {...}

Jenis fungsi FILTER_CANCEL_SEND_NET_BUFFER_LISTS 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 FILTER_CANCEL_SEND_NET_BUFFER_LISTS 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 <= DISPATCH_LEVEL

Lihat juga

FilterAttach

NDIS_GET_NET_BUFFER_LIST_CANCEL_ID

NET_BUFFER

NET_BUFFER_LIST

NdisCancelSendNetBufferLists

NdisFCancelSendNetBufferLists

NdisFRegisterFilterDriver

NdisFSendNetBufferListsComplete