Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Struktur NDIS 6.0 dan yang lebih baru NET_BUFFER dianalogikan dengan struktur NDIS_PACKET yang digunakan oleh NDIS 5.x dan driver sebelumnya. Setiap struktur NET_BUFFER mengemas paket data jaringan.
Gambar berikut menunjukkan bidang dalam struktur NET_BUFFER.
Struktur NET_BUFFER mencakup struktur NET_BUFFER_HEADER di anggota NetBufferHeader. Struktur NET_BUFFER_HEADER mencakup struktur NET_BUFFER_DATA dalam anggota NetBufferData. Anda harus menggunakan makro NDIS untuk mengakses NET_BUFFER anggota struktur. Untuk daftar lengkap makro ini, lihat halaman referensi struktur NET_BUFFER.
Beberapa anggota struktur NET_BUFFER hanya digunakan oleh NDIS. Anggota yang biasanya digunakan driver adalah:
ProtocolReserved
Dicadangkan untuk digunakan oleh driver protokol.
MiniportReserved
Dicadangkan untuk digunakan oleh driver miniport.
NdisPoolHandle
Menentukan handel kumpulan yang mengidentifikasi kumpulan NET_BUFFER tempat struktur NET_BUFFER dialokasikan.
Berikutnya
Menentukan penunjuk ke struktur NET_BUFFER berikutnya dalam daftar tertaut struktur NET_BUFFER. Jika ini adalah struktur NET_BUFFER terakhir dalam daftar, anggota ini null.
DataLength
Menentukan panjang byte data jaringan dalam rantai MDL.
DataOffset
Menentukan offset, dalam byte, dari awal memori dalam rantai MDL hingga awal data jaringan dalam rantai MDL.
CurrentMdl
Menentukan penunjuk ke MDL pertama yang digunakan driver saat ini. Pointer ini memberikan pengoptimalan yang meningkatkan performa dengan melewati MDL apa pun yang tidak digunakan driver saat ini.
CurrentMdlOffset
Menentukan offset, dalam byte, ke awal ruang data yang digunakan di MDL yang ditentukan oleh CurrentMdl anggota struktur NET_BUFFER.
Gambar berikut menunjukkan hubungan antara CurrentMdl , CurrentMdlOffset, DataOffset, dan anggota DataLength dan ruang data.
NDIS menyediakan fungsi untuk mengelola ruang data dalam rantai MDL. Bagaimana driver menggunakan ruang data berubah secara dinamis dengan driver saat ini. Terkadang ada ruang data yang saat ini tidak digunakan oleh driver saat ini. Meskipun ruang data yang tidak digunakan saat ini tidak digunakan, ruang data tersebut dapat berisi data yang valid. Misalnya, pada jalur penerima, ruang data yang tidak digunakan dapat berisi informasi header yang digunakan oleh driver tingkat bawah.
Driver melakukan operasi mundur dan maju untuk meningkatkan dan mengurangi ruang data yang digunakan. Untuk informasi selengkapnya tentang operasi retret dan kemajuan, lihat Operasi Retreat dan Advance.
Istilah dan definisi berikut menjelaskan elemen ruang data NET_BUFFER:
Ruang data yang digunakan
Ruang data yang digunakan berisi data yang digunakan driver saat ini pada saat ini. Driver meningkatkan ruang data yang digunakan dengan operasi retret dan mengurangi ruang data yang digunakan dengan operasi lanjutan.
ruang data yang tidak digunakan
Pengandar saat ini tidak menggunakan ruang data ini pada saat ini.
Ukuran data total
Ukuran total data adalah jumlah ukuran ruang data digunakan dan ruang data yang tidak digunakan. Untuk menghitung ukuran total, tambahkan DataOffset ke DataLength .
Retreat
Operasi retret meningkatkan ukuran ruang data yang digunakan .
Advance
Operasi lanjutan mengurangi ukuran ruang data digunakan.