Fungsi NdisAllocateNetBufferMdlAndData (ndis/nblapi.h)

Driver NDIS memanggil fungsi NdisAllocateNetBufferMdlAndData untuk mengalokasikan struktur NET_BUFFER bersama dengan MDL dan data terkait.

Sintaks

NDIS_EXPORTED_ROUTINE NET_BUFFER * NdisAllocateNetBufferMdlAndData(
  [in] NDIS_HANDLE PoolHandle
);

Parameter

[in] PoolHandle

Handel kumpulan struktur NET_BUFFER yang sebelumnya dikembalikan dari panggilan ke fungsi NdisAllocateNetBufferPool .

Mengembalikan nilai

NdisAllocateNetBufferMdlAndData mengembalikan pointer ke struktur NET_BUFFER yang dialokasikan NDIS. Jika alokasi tidak berhasil, penunjuk ini ADALAH NULL.

Keterangan

Pemanggil harus memanggil fungsi NdisAllocateNetBufferPool dan menentukan ukuran maksimum buffer data. Mengingat nilai ini, NDIS dapat melakukan pra-alokasi buffer untuk pemanggil.

Fungsi ini mengalokasikan struktur NET_BUFFER , MDL, dan data dalam satu buffer memori. Ini berguna untuk mencapai performa tinggi ketika struktur NET_BUFFER sering dialokasikan dan dikosongkan. Pemanggil tidak boleh memanggil NdisAllocateNetBuffer untuk mengalokasikan NET_BUFFERs keluar dari kumpulan NET_BUFFER yang berisi data.

NDIS menggunakan parameter PoolHandle untuk mendapatkan blok memori, lalu membuat NET_BUFFER, MDL, dan buffer data.

Untuk membebaskan NET_BUFFER dan informasi terkait, panggil fungsi NdisFreeNetBuffer .

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), NdisAllocateNetBufferMdlAndData(ndis), NdisAllocateNetBufferMdlAndData_InitFail(ndis)

Lihat juga

NET_BUFFER

NdisAllocateNetBuffer

NdisFreeNetBuffer