Fungsi NdisCoSendNetBufferLists (ndis.h)
Fungsi NdisCoSendNetBufferLists mengirimkan data jaringan yang terkandung dalam daftar struktur NET_BUFFER_LIST tertentu.
Sintaks
void NdisCoSendNetBufferLists(
[in] NDIS_HANDLE NdisVcHandle,
[in] PNET_BUFFER_LIST NetBufferLists,
[in] ULONG SendFlags
);
Parameter
[in] NdisVcHandle
Handel ke koneksi virtual (VC) yang mengidentifikasi target permintaan pengiriman.
[in] NetBufferLists
Penunjuk ke daftar struktur NET_BUFFER_LIST yang ditautkan. Setiap struktur NET_BUFFER_LIST menjelaskan daftar struktur NET_BUFFER .
[in] SendFlags
Bendera yang menentukan atribut untuk operasi pengiriman. Bendera dapat dikombinasikan dengan operasi OR bitwise. Untuk menghapus semua bendera, atur parameter ini ke nol. NdisCoSendNetBufferLists mendukung bendera berikut:
NDIS_SEND_FLAGS_DISPATCH_LEVEL
IRQL saat ini DISPATCH_LEVEL. Untuk informasi selengkapnya tentang bendera ini, lihat Mengirimkan Pelacakan IRQL.
NDIS_SEND_FLAGS_CHECK_FOR_LOOPBACK
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 NDIS_SEND_FLAGS_CHECK_FOR_LOOPBACK. Ketika bendera ini diatur, NDIS mengidentifikasi semua struktur NET_BUFFER yang berisi data yang cocok dengan kriteria penerimaan untuk pengikatan. NDIS menunjukkan struktur NET_BUFFER yang cocok dengan kriteria dengan driver yang terlalu berlebihan. Bendera ini tidak memengaruhi pemeriksaan loopback, atau perulangan kembali, pada pengikatan lain.
Nilai kembali
Tidak ada
Keterangan
Setelah driver protokol CoNDIS memanggil NdisCoSendNetBufferLists, NDIS mengirimkan struktur NET_BUFFER_LIST yang ditentukan parameter NetBufferLists ke driver yang mendasar Fungsi MiniportCoSendNetBufferLists .
Driver protokol harus mengalokasikan setiap struktur NET_BUFFER_LIST dari kumpulan dengan memanggil salah satu fungsi berikut:
Driver protokol dapat melakukan pra-alokasi struktur NET_BUFFER_LIST--misalnya, dalam rutinitas DriverEntry-nya . Atau, driver protokol dapat segera mengalokasikan struktur sebelum memanggil NdisCoSendNetBufferLists dan kemudian dapat membebaskannya ketika operasi pengiriman selesai. Ketika NDIS mengembalikan struktur NET_BUFFER_LIST ke Fungsi ProtocolCoSendNetBufferListsComplete , driver protokol dapat menyiapkan struktur NET_BUFFER_LIST dan sumber daya terkait untuk digunakan kembali. Jika Anda menggunakan kembali struktur NET_BUFFER_LIST, Anda bisa mendapatkan performa yang lebih baik daripada mengembalikan struktur ke kumpulan dan kemudian merealokasinya untuk operasi pengiriman lain.Driver protokol harus mengatur anggota SourceHandle dari setiap struktur NET_BUFFER_LIST ke nilai yang sama dengan yang diteruskannya pada parameter NdisVcHandle . Handel sumber menyediakan informasi yang diperlukan NDIS untuk mengembalikan struktur NET_BUFFER_LIST ke driver protokol setelah driver miniport yang mendasar memanggil Fungsi NdisMCoSendNetBufferListsComplete .
Sebelum driver protokol memanggil NdisCoSendNetBufferLists, driver 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.
Sebelum driver protokol memanggil NdisCoSendNetBufferLists dengan daftar struktur NET_BUFFER_LIST, driver protokol harus memastikan bahwa struktur NET_BUFFER_LIST disiapkan dalam urutan data jaringan harus dikirim.
Segera setelah driver protokol memanggil NdisCoSendNetBufferLists, driver protokol tidak lagi memiliki struktur NET_BUFFER_LIST dan semua sumber daya terkait. NDIS memanggil fungsi ProtocolCoSendNetBufferListsComplete untuk mengembalikan struktur dan data ke driver protokol. NDIS dapat mengumpulkan struktur dan data dari beberapa permintaan pengiriman ke dalam satu daftar tertaut struktur NET_BUFFER_LIST sebelum meneruskan daftar ke ProtocolCoSendNetBufferListsComplete.
Hingga NDIS memanggil ProtocolCoSendNetBufferListsComplete, status pengiriman yang dimulai driver protokol saat ini tidak tersedia untuk driver protokol. Driver protokol untuk sementara melepaskan kepemilikan semua sumber daya yang dialokasikan untuk permintaan pengiriman saat memanggil NdisCoSendNetBufferLists. Driver protokol tidak boleh mencoba memeriksa struktur NET_BUFFER_LIST atau data terkait setelah driver memanggil NdisCoSendNetBufferLists.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Didukung untuk driver NDIS 6.0 di Windows Vista. |
Target Platform | Desktop |
Header | ndis.h (termasuk Ndis.h) |
Pustaka | Ndis.lib |
IRQL | <=DISPATCH_LEVEL |
Aturan kepatuhan DDI | Irql_Connection_Function(ndis) |
Lihat juga
MiniportCoSendNetBufferLists NdisAllocateCloneNetBufferList NdisAllocateNetBufferAndNetBufferList NdisMCoSendNetBufferListsComplete ProtocolCoSendNetBufferListsCompleteSaran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk