Bagikan melalui


Fungsi NdisAllocateNetBufferListContext (ndis/nblapi.h)

Panggil fungsi NdisAllocateNetBufferListContext untuk mengalokasikan lebih banyak ruang konteks dalam struktur NET_BUFFER_LIST_CONTEXT

NET_BUFFER_LIST struktur.

Sintaks

NDIS_EXPORTED_ROUTINE NDIS_STATUS NdisAllocateNetBufferListContext(
  [in] NET_BUFFER_LIST *NetBufferList,
  [in] USHORT          ContextSize,
  [in] USHORT          ContextBackFill,
  [in] ULONG           PoolTag
);

Parameter

[in] NetBufferList

Penunjuk ke struktur NET_BUFFER_LIST yang dialokasikan sebelumnya.

[in] ContextSize

Jumlah ruang konteks yang akan dialokasikan dalam struktur NET_BUFFER_LIST_CONTEXT. Jumlah ini harus kelipatan dari nilai yang ditentukan oleh sizeof(void*).

[in] ContextBackFill

Jumlah memori, selain nilai ContextSize, untuk mengalokasikan apakah NDIS harus mengalokasikan memori untuk memenuhi permintaan. Jumlah ini harus kelipatan dari nilai yang ditentukan oleh sizeof(void*).

[in] PoolTag

Tag kumpulan kernel yang digunakan NDIS untuk mengalokasikan memori untuk struktur NET_BUFFER_LIST_CONTEXT, jika alokasi diperlukan. Tag adalah string, dibatasi oleh tanda kutip tunggal, dengan hingga empat karakter, biasanya ditentukan dalam urutan terbalik. Tag kumpulan kernel membantu NDIS mengidentifikasi pemilik memori.

Nilai kembali

NdisAllocateNetBufferListContext mengembalikan salah satu hal berikut ini:

Menampilkan kode Deskripsi
NDIS_STATUS_SUCCESS
NdisAllocateNetBufferListContext berhasil mengalokasikan ruang konteks baik dengan mengurangi nilai anggota Offset dari struktur NET_BUFFER_LIST_CONTEXT atau dengan mengalokasikan memori baru.
NDIS_STATUS_RESOURCES
NdisAllocateNetBufferListContext gagal karena sumber daya yang tidak mencukupi.
NDIS_STATUS_FAILURE
NdisAllocateNetBufferListContext gagal karena alasan selain sumber daya yang tidak mencukupi.

Keterangan

Jika ada cukup ruang konteks yang tidak digunakan yang tersedia dalam struktur NET_BUFFER_LIST_CONTEXT untuk memenuhi permintaan, NdisAllocateNetBufferListContext hanya mengurangi nilai anggota Offset dalam struktur NET_BUFFER_LIST_CONTEXT. Jika tidak, NDIS mengalokasikan memori baru untuk ruang konteks. Anda dapat menentukan ContextBackFill untuk mengalokasikan memori tambahan sehingga panggilan berikutnya ke NdisAllocateNetBufferListContext tidak harus mengalokasikan memori.

Catatan Ruang konteks selalu diselaraskan ke 'sizeof(void*)'. Ini adalah perataan yang memadai untuk semua jenis alami, tetapi tidak memadai untuk jenis data dengan persyaratan perataan yang tidak biasa, seperti SLIST_ENTRY.

Memanggil Fungsi NdisFreeNetBufferListContext untuk merilis ruang konteks dalam struktur NET_BUFFER_LIST_CONTEXT yang dialokasikan dengan NdisAllocateNetBufferListContext.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Didukung di NDIS 6.0 dan yang lebih baru.
Target Platform Universal
Header ndis/nblapi.h (sertakan ndis.h)
Pustaka Ndis.lib
IRQL <= DISPATCH_LEVEL
Aturan kepatuhan DDI Irql_NetBuffer_Function(ndis)

Lihat juga

NET_BUFFER_LIST

NET_BUFFER_LIST_CONTEXT

NdisFreeNetBufferListContext