Fungsi NdisMSendNetBufferListsComplete (ndis.h)
Driver Miniport memanggil fungsi NdisMSendNetBufferListsComplete untuk mengembalikan daftar tertaut struktur NET_BUFFER_LIST ke driver yang terlalu penting dan untuk mengembalikan status akhir permintaan kirim.
Sintaks
void NdisMSendNetBufferListsComplete(
[in] NDIS_HANDLE MiniportAdapterHandle,
PNET_BUFFER_LIST NetBufferList,
[in] ULONG SendCompleteFlags
);
Parameter
[in] MiniportAdapterHandle
Handel miniport yang diteruskan NDIS ke fungsi MiniportInitializeEx .
NetBufferList
Penunjuk ke daftar struktur NET_BUFFER_LIST yang ditautkan. Driver miniport menerima struktur NET_BUFFER_LIST dalam panggilan sebelumnya ke fungsi MiniportSendNetBufferLists-nya .
[in] SendCompleteFlags
Bendera NDIS yang dapat dikombinasikan dengan operasi OR. Untuk menghapus semua bendera, atur anggota ini ke nol. Fungsi ini mendukung bendera NDIS_SEND_COMPLETE_FLAGS_DISPATCH_LEVEL yang; jika diatur, menunjukkan bahwa IRQL saat ini DISPATCH_LEVEL. Untuk informasi selengkapnya tentang bendera ini, lihat Mengirimkan Pelacakan IRQL.
Nilai kembali
Tidak ada
Keterangan
Driver miniport memanggil NdisMSendNetBufferListsComplete untuk menyelesaikan permintaan pengiriman yang dibuat NDIS ke fungsi MiniportSendNetBufferLists driver. Driver miniport menentukan daftar tertaut struktur NET_BUFFER_LIST yang terkait dengan permintaan pengiriman yang telah selesai. Saat status permintaan pengiriman tertunda, driver miniport mempertahankan kepemilikan struktur NET_BUFFER_LIST dan semua sumber daya yang dialokasikan protokol yang terkait dengan struktur NET_BUFFER_LIST.
Setelah driver miniport memanggil NdisMSendNetBufferListsComplete, NDIS memanggil fungsi ProtocolSendNetBufferListsComplete dari driver yang disebut fungsi NdisSendNetBufferLists untuk memulai permintaan pengiriman.
Driver miniport dapat menyelesaikan permintaan pengiriman dalam urutan apa pun. Misalnya, driver miniport dapat menggabungkan daftar struktur NET_BUFFER_LIST dari beberapa panggilan MiniportSendNetBufferLists atau membagi daftar dari panggilan MiniportSendNetBufferLists . Namun, driver miniport tidak boleh memodifikasi daftar struktur NET_BUFFER yang terkait dengan struktur NET_BUFFER_LIST.
Driver miniport harus mengatur salah satu kode status berikut dalam anggota Status dari setiap struktur NET_BUFFER_LIST yang ditentukan parameter NetBufferLists :
Struktur | Deskripsi |
---|---|
NDIS_STATUS_SUCCESS | Semua data jaringan yang dijelaskan struktur NET_BUFFER_LIST dan struktur NET_BUFFER terkait berhasil diproses untuk transmisi. Misalnya, driver miniport menyalin data ke antrean atau data telah dikirimkan. |
NDIS_STATUS_INVALID_LENGTH | Ukuran data dalam beberapa struktur NET_BUFFER yang terkait dengan struktur NET_BUFFER_LIST ini terlalu besar untuk NIC yang mendasar. |
NDIS_STATUS_RESOURCES | Permintaan pengiriman untuk struktur NET_BUFFER_LIST ini gagal karena sumber daya yang tidak mencukuum. |
NDIS_STATUS_PAUSED | Adaptor miniport berada dalam status Dijeda, seperti yang dijelaskan pada halaman referensi untuk fungsi MiniportPause. |
NDIS_STATUS_SEND_ABORTED | NDIS disebut fungsi MiniportCancelSend untuk membatalkan operasi pengiriman untuk struktur NET_BUFFER_LIST ini. |
NDIS_STATUS_RESET_IN_PROGRESS | Driver miniport membatalkan permintaan pengiriman karena reset. |
NDIS_STATUS_FAILURE | Driver miniport gagal mengirim permintaan karena beberapa alasan selain yang dijelaskan sebelumnya. Misalnya, driver miniport dapat gagal mengirim permintaan karena kegagalan perangkat keras. |
Panggilan driver miniport ke NdisMSendNetBufferListsComplete tidak selalu berarti bahwa data untuk permintaan pengiriman telah dikirimkan melalui jaringan. Data mungkin diantrekan di perangkat keras NIC.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Didukung di NDIS 6.0 dan yang lebih baru. |
Target Platform | Universal |
Header | ndis.h (termasuk Ndis.h) |
Pustaka | Ndis.lib |
IRQL | <= DISPATCH_LEVEL |
Aturan kepatuhan DDI | Irql_SendRcv_Function(ndis), NdisTimedDataHang, NdisTimedDataSend |