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

DriverEntry

MiniportCoSendNetBufferLists

NET_BUFFER

NET_BUFFER_LIST

NET_BUFFER_LIST_INFO

NdisAllocateCloneNetBufferList NdisAllocateNetBufferAndNetBufferList

NdisAllocateNetBufferList

NdisMCoSendNetBufferListsComplete ProtocolCoSendNetBufferListsComplete