Bagikan melalui


Fungsi NdisFSendNetBufferLists (ndis.h)

Driver filter memanggil fungsi NdisFSendNetBufferLists untuk mengirim daftar buffer data jaringan.

Sintaks

void NdisFSendNetBufferLists(
  [in] NDIS_HANDLE                       NdisFilterHandle,
       __drv_aliasesMem PNET_BUFFER_LIST NetBufferList,
  [in] NDIS_PORT_NUMBER                  PortNumber,
  [in] ULONG                             SendFlags
);

Parameter

[in] NdisFilterHandle

Handel NDIS yang mengidentifikasi modul filter ini. NDIS meneruskan handel ke driver filter dalam panggilan ke fungsi FilterAttach .

NetBufferList

Penunjuk ke daftar struktur NET_BUFFER_LIST yang ditautkan. Setiap struktur NET_BUFFER_LIST menjelaskan daftar struktur NET_BUFFER .

[in] PortNumber

Nomor port yang mengidentifikasi port adaptor miniport. Nomor port adaptor miniport ditetapkan dengan memanggil fungsi NdisMAllocatePort . Nilai nol mengidentifikasi port default adaptor miniport.

[in] SendFlags

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

NDIS_SEND_FLAGS_DISPATCH_LEVEL

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

NDIS_SEND_FLAGS_CHECK_FOR_LOOPBACK

Menentukan bahwa NDIS harus memeriksa loopback. Secara default, NDIS tidak mengulang kembali data ke driver yang mengirimkan permintaan pengiriman. Driver yang terlalu berlebihan dapat mengambil alih perilaku ini dengan mengatur bendera ini. Ketika bendera ini diatur, NDIS mengidentifikasi semua struktur NET_BUFFER yang berisi data yang cocok dengan kriteria penerima untuk pengikatan. NDIS menunjukkan struktur NET_BUFFER yang cocok dengan kriteria dengan driver yang terlalu berlebihan. Bendera ini tidak berpengaruh pada pemeriksaan loopback, atau perulangan kembali, pada pengikatan lain.

NDIS_SEND_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 tertaut struktur NET_BUFFER_LIST menggunakan port sumber yang sama, ekstensi harus mengatur bendera NDIS_SEND_COMPLETE_FLAGS_SWITCH_SINGLE_SOURCE dalam parameter SendCompleteFlagsNdisFSendNetBufferListsComplete saat menyelesaikan permintaan pengiriman.
 
Catatan Bendera ini tersedia di NDIS 6.30 dan yang lebih baru.
 

NDIS_SEND_FLAGS_SWITCH_DESTINATION_GROUP

Jika bendera ini diatur, semua paket dalam daftar tertaut struktur NET_BUFFER_LIST akan diteruskan ke port tujuan switch yang dapat diperluas yang sama.

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

Catatan Bendera ini tersedia di NDIS 6.30 dan yang lebih baru.
 

Nilai kembali

Tidak ada

Keterangan

Setelah driver filter memanggil fungsi NdisFSendNetBufferLists , NDIS mengirimkan struktur NET_BUFFER_LIST ke driver yang mendasar.

Driver filter dapat berasal dari permintaan pengiriman atau dapat memfilter permintaan yang diterimanya dari driver yang terlalu berlebihan. Jika driver filter berasal dari permintaan pengiriman, driver harus mengalokasikan kumpulan buffer. Driver filter mengalokasikan setiap struktur NET_BUFFER_LIST dari kumpulan.

Driver filter dapat melakukan pra-alokasi struktur NET_BUFFER_LIST atau dapat mengalokasikan struktur tepat sebelum memanggil NdisFSendNetBufferLists dan kemudian membebaskannya ketika operasi pengiriman selesai.

Driver filter harus mengatur anggota SourceHandle dari setiap struktur NET_BUFFER_LIST yang berasal dari nilai yang sama dengan yang diteruskannya ke parameter NdisFilterHandle . Handel filter menyediakan informasi yang diperlukan NDIS untuk mengembalikan struktur NET_BUFFER_LIST ke driver filter. Driver filter tidak boleh mengubah anggota SourceHandle dalam struktur NET_BUFFER_LIST apa pun yang tidak berasal.

Sebelum memanggil NdisFSendNetBufferLists, driver filter dapat mengatur informasi yang menyertai permintaan pengiriman dengan makro NET_BUFFER_LIST_INFO . Driver yang mendasar dapat mengambil informasi ini dengan makro NET_BUFFER_LIST_INFO .

NDIS memanggil driver filter FilterSendNetBufferLists berfungsi untuk meneruskan permintaan pengiriman dari driver yang terlalu berlebihan. Driver filter dapat meneruskan permintaan tersebut dengan meneruskan struktur T NET_BUFFER_LISTyang diterimanya di FilterSendNetBufferLists ke NdisFSendNetBufferLists.

Segera setelah driver filter memanggil fungsi NdisFSendNetBufferLists , ia melepaskan kepemilikan struktur NET_BUFFER_LIST dan semua sumber daya terkait. NDIS memanggil Fungsi FilterSendNetBufferListsComplete untuk mengembalikan struktur dan data ke driver filter. NDIS dapat mengumpulkan struktur dan data dari beberapa permintaan pengiriman ke dalam satu daftar struktur NET_BUFFER_LIST yang ditautkan sebelum meneruskan daftar ke FilterSendNetBufferListsComplete.

Hingga NDIS memanggil FilterSendNetBufferListsComplete, status permintaan pengiriman saat ini tidak tersedia untuk driver filter. Driver filter untuk sementara merilis kepemilikan semua sumber daya yang terkait dengan permintaan pengiriman saat memanggil NdisFSendNetBufferLists. Driver filter tidak boleh mencoba memeriksa struktur NET_BUFFER_LIST atau data terkait setelah memanggil NdisFSendNetBufferLists.

Catatan Driver filter harus melacak permintaan pengiriman yang berasal darinya dan memastikan bahwa ia tidak memanggil Fungsi NdisFSendNetBufferListsComplete ketika permintaan tersebut selesai.
 

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Didukung di NDIS 6.0 dan yang lebih baru.
Target Platform Desktop
Header ndis.h (termasuk Ndis.h)
Pustaka Ndis.lib
IRQL <= DISPATCH_LEVEL
Aturan kepatuhan DDI Irql_Filter_Driver_Function(ndis)

Lihat juga

FilterAttach

FilterSendNetBufferLists

FilterSendNetBufferListsComplete

NET_BUFFER

NET_BUFFER_LIST

NET_BUFFER_LIST_INFO

NdisMAllocatePort