Bagikan melalui


Struktur NET_BUFFER_LIST Kloning

Driver NDIS membuat struktur NET_BUFFER_LIST kloning dari struktur NET_BUFFER_LIST yang ada. Struktur kloning mereferensikan data struktur asli. Driver dapat menggunakan jenis struktur ini untuk mentransfer data yang sama secara efisien ke beberapa jalur.

Gambar berikut menunjukkan hubungan antara struktur NET_BUFFER_LIST induk dan struktur anak kloning.

Diagram memperlihatkan hubungan antara struktur NET_BUFFER_LIST induk dan struktur anak kloningnya.

Gambar sebelumnya berisi struktur NET_BUFFER_LIST induk dan struktur anak yang berasal dari induk tersebut. Struktur induk memiliki satu struktur NET_BUFFER_LIST_CONTEXT dan satu struktur NET_BUFFER dengan MDL terpasang. Penunjuk induk struktur induk adalah NULL yang menunjukkan bahwa itu bukan struktur turunan.

Struktur NET_BUFFER_LIST anak memiliki satu struktur NET_BUFFER dengan MDL terpasang. Anak NET_BUFFER_LIST memiliki penunjuk ke struktur induk. NULL di mana penunjuk struktur NET_BUFFER_LIST_CONTEXT akan menunjukkan bahwa anak tidak memiliki struktur NET_BUFFER_LIST_CONTEXT.

Driver memanggil fungsi NdisAllocateCloneNetBufferList untuk membuat kloning NET_BUFFER_LIST struktur. NDIS mengalokasikan struktur NET_BUFFER dan MDL baru dengan struktur NET_BUFFER_LIST kloning. NDIS tidak mengalokasikan struktur NET_BUFFER_LIST_CONTEXT untuk struktur kloning. Struktur NET_BUFFER dan MDL baru menjelaskan data yang sama seperti dalam struktur induk. Data tidak disalin.

Driver memanggil fungsi NdisFreeCloneNetBufferList untuk membebaskan struktur NET_BUFFER_LIST dan semua struktur NET_BUFFER terkait dan rantai MDL yang sebelumnya dialokasikan dengan memanggil NdisAllocateCloneNetBufferList.

Struktur NET_BUFFER_LIST Turunan