FILTER_RETURN_NET_BUFFER_LISTS fungsi panggilan balik (ndis.h)

NDIS memanggil fungsi FilterReturnNetBufferLists untuk mengembalikan daftar tertaut struktur NET_BUFFER_LIST dan data terkait ke driver filter.

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

Sintaks

FILTER_RETURN_NET_BUFFER_LISTS FilterReturnNetBufferLists;

void FilterReturnNetBufferLists(
  [in] NDIS_HANDLE FilterModuleContext,
  [in] PNET_BUFFER_LIST NetBufferLists,
  [in] ULONG ReturnFlags
)
{...}

Parameter

[in] FilterModuleContext

Handel ke area konteks untuk modul filter. Driver filter membuat dan menginisialisasi area konteks ini dalam fungsi FilterAttach .

[in] NetBufferLists

Daftar tertaut struktur NET_BUFFER_LIST yang ditunjukkan driver filter dengan memanggil Fungsi NdisFIndicateReceiveNetBufferLists . Daftar ini dapat mencakup struktur NET_BUFFER_LIST dari beberapa panggilan ke NdisFIndicateReceiveNetBufferLists.

[in] ReturnFlags

Bendera NDIS yang dapat dikombinasikan dengan operasi OR. Untuk menghapus semua bendera, atur anggota ini ke nol. Fungsi ini mendukung bendera berikut:

NDIS_RETURN_FLAGS_DISPATCH_LEVEL

Menentukan bahwa IRQL saat ini DISPATCH_LEVEL. Untuk informasi selengkapnya tentang bendera ini, lihat Pengiriman Pelacakan IRQL.

NDIS_RETURN_FLAGS_SWITCH_SINGLE_SOURCE

Jika bendera ini diatur, semua paket dalam daftar tertaut struktur NET_BUFFER_LIST berasal dari port sumber sakelar hyper-V yang dapat diperluas yang sama.

Untuk informasi selengkapnya, lihat Bendera Kirim dan Terima Sakelar Yang Dapat Diperluas Hyper-V.

Catatan Jika setiap paket dalam daftar struktur NET_BUFFER_LIST yang ditautkan menggunakan port sumber yang sama, ekstensi harus mengatur bendera NDIS_RECEIVE_FLAGS_SWITCH_SINGLE_SOURCE dalam parameter ReceiveFlagsfilterReceiveNetBufferLists saat mengirim permintaan.
 

Mengembalikan nilai

Tidak ada

Keterangan

FilterReturnNetBufferLists adalah fungsi opsional. Jika driver filter tidak memfilter menerima indikasi, itu dapat mengatur titik masuk untuk fungsi ini ke NULL ketika memanggil Fungsi NdisFRegisterFilterDriver .

Driver filter dapat memanggil fungsi NdisSetOptionalHandlers , dari fungsi FilterSetModuleOptions , untuk menentukan fungsi FilterReturnNetBufferLists untuk modul filter.

Catatan Driver filter yang tidak menyediakan fungsi FilterReturnNetBufferLists tidak dapat memanggil Fungsi NdisFIndicateReceiveNetBufferLists untuk memulai indikasi penerima.
 
Catatan Driver filter yang menyediakan fungsi FilterReturnNetBufferLists harus menyediakan fungsi FilterStatus .
 
Ketika NDIS memanggil FilterReturnNetBufferLists, driver filter mendapatkan kembali kepemilikan struktur NET_BUFFER_LIST dan data terkait.

Jika driver yang mendasar memulai indikasi terima, driver filter harus memanggil Fungsi NdisFReturnNetBufferLists untuk menyelesaikan indikasi terima.

Jika driver filter berasal dari indikasi terima, FilterReturnNetBufferLists dapat merilis struktur NET_BUFFER_LIST dan data terkait atau menyiapkannya untuk digunakan kembali dalam panggilan berikutnya ke NdisFIndicateReceiveNetBufferLists.

Driver filter harus melacak indikasi penerimaan yang dimulai dan memastikan bahwa ia tidak memanggil NdisFReturnNetBufferLists saat NDIS memanggil FilterReturnNetBufferLists.

NDIS memanggil FilterReturnNetBufferLists di IRQL <= DISPATCH_LEVEL.

Contoh

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

FILTER_RETURN_NET_BUFFER_LISTS MyReturnNetBufferLists;

Kemudian, terapkan fungsi Anda sebagai berikut:

_Use_decl_annotations_
VOID
 MyReturnNetBufferLists(
    NDIS_HANDLE  FilterModuleContext,
    PNET_BUFFER_LIST  NetBufferLists,
    ULONG  ReturnFlags
    )
  {...}

Jenis fungsi FILTER_RETURN_NET_BUFFER_LISTS 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 FILTER_RETURN_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

FilterSetModuleOptions

FilterStatus

NET_BUFFER

NET_BUFFER_LIST

NdisFIndicateReceiveNetBufferLists

NdisFRegisterFilterDriver

NdisFReturnNetBufferLists

NdisSetOptionalHandlers