struktur NET_BUFFER_LIST_CONTEXT (ndis/nbl.h)

Struktur NET_BUFFER_LIST_CONTEXT menyimpan informasi konteks untuk struktur NET_BUFFER_LIST .

Sintaks

typedef struct _NET_BUFFER_LIST_CONTEXT {
  NET_BUFFER_LIST_CONTEXT *Next;
  USHORT                  Size;
  USHORT                  Offset;
  UCHAR                   ContextData[];
} NET_BUFFER_LIST_CONTEXT, *PNET_BUFFER_LIST_CONTEXT;

Anggota

Next

Penunjuk ke struktur NET_BUFFER_LIST_CONTEXT berikutnya dalam daftar struktur NET_BUFFER_LIST_CONTEXT yang ditautkan.

Size

Ukuran, dalam byte, dari seluruh ruang konteks dalam struktur NET_BUFFER_LIST_CONTEXT, termasuk ruang konteks yang digunakan dan tidak digunakan.

Offset

Offset, dalam byte, dari awal buffer data konteks hingga awal data konteks dalam struktur NET_BUFFER_LIST_CONTEXT. Anggota Offset juga menentukan ukuran dalam byte ruang konteks yang tidak digunakan dalam struktur NET_BUFFER_LIST_CONTEXT.

ContextData

Buffer data konteks. Data konteks dapat mencakup informasi apa pun yang diperlukan driver.

Keterangan

Setiap struktur NET_BUFFER_LIST dapat mencakup struktur NET_BUFFER_LIST_CONTEXT yang telah dialokasikan sebelumnya. Saat struktur NET_BUFFER_LIST berjalan melalui tumpukan driver, daftar struktur NET_BUFFER_LIST_CONTEXT yang ditautkan dapat diperluas untuk mengakomodasi ruang data tambahan untuk setiap driver.

Driver harus menggunakan makro dan fungsi NDIS berikut untuk mengakses dan memanipulasi anggota dalam struktur NET_BUFFER_LIST_CONTEXT:

Anggota ContextData dari struktur NET_BUFFER_LIST_CONTEXT menentukan bagian data dari struktur NET_BUFFER_LIST_CONTEXT. Untuk meningkatkan performa sistem, driver harus melakukan pra-alokasi ruang data konteks yang diperlukan ketika driver mengalokasikan kumpulan struktur NET_BUFFER_LIST. Untuk melakukan pra-alokasi ruang data ini, driver memanggil Fungsi NdisAllocateNetBufferListPool lalu menentukan jumlah ruang data yang diperlukan dalam parameter ContextSize . Pra-alokasi ruang data ini menghemat NDIS dari mengalokasikan memori di jalur terima dan kirim.
Catatan NDIS memperkirakan ruang data konteks yang diperlukan dan, jika perlu, menyesuaikan ruang data yang dialokasikan untuk memenuhi persyaratan untuk seluruh tumpukan driver.
 
Anggota Offset menentukan jumlah ruang konteks yang tidak digunakan dalam struktur NET_BUFFER_LIST_CONTEXT. Anggota Offset juga menunjukkan offset dari awal anggota ContextData hingga awal ruang data konteks yang digunakan.

Driver NDIS memanggil Fungsi NdisAllocateNetBufferListContext untuk mengalokasikan ruang buffer yang berdampingan dalam struktur NET_BUFFER_LIST_CONTEXT. Jika perlu, NDIS mengalokasikan struktur NET_BUFFER_LIST_CONTEXT baru dengan ruang tambahan untuk menghormati permintaan. Driver NDIS memanggil Fungsi NdisFreeNetBufferListContext untuk membebaskan ruang buffer.

Gunakan NET_BUFFER_LIST_CONTEXT_DATA_SIZE makro untuk mendapatkan ukuran ruang konteks yang digunakan. Gunakan NET_BUFFER_LIST_CONTEXT_DATA_START makro untuk mendapatkan alamat awal ruang konteks yang digunakan.

Untuk informasi selengkapnya tentang cara menggunakan buffer net, lihat Arsitektur NET_BUFFER.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Didukung di NDIS 6.0 dan yang lebih baru.
Header ndis/nbl.h (sertakan ndis.h)

Lihat juga

NET_BUFFER

NET_BUFFER_LIST

NET_BUFFER_LIST_CONTEXT_DATA_SIZE NET_BUFFER_LIST_CONTEXT_DATA_START NdisAllocateNetBufferListContext NdisAllocateNetBufferListPool

NdisFreeNetBufferListContext