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.
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.
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.
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) |