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

Lihat juga

MiniportCancelSend

MiniportInitializeEx

MiniportSendNetBufferLists

NET_BUFFER

NET_BUFFER_LIST

NdisSendNetBufferLists