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.
Panggil fungsi NdisAllocateNetBuffer untuk mengalokasikan dan menginisialisasi struktur NET_BUFFER dari kumpulan struktur NET_BUFFER .
Sintaks
NDIS_EXPORTED_ROUTINE NET_BUFFER * NdisAllocateNetBuffer(
[in] NDIS_HANDLE PoolHandle,
[in, optional] MDL *MdlChain,
[in] ULONG DataOffset,
[in] SIZE_T DataLength
);
Parameter
[in] PoolHandle
Handel kumpulan struktur NET_BUFFER yang sebelumnya dikembalikan dari panggilan ke NdisAllocateNetBufferPool.
[in, optional] MdlChain
Penunjuk ke rantai MDL yang digunakan NDIS untuk menginisialisasi struktur NET_BUFFER baru. MdlChain bisa NULL.
[in] DataOffset
Offset awal, dalam byte, dari awal buffer hingga awal ruang data yang digunakan dalam rantai MDL. Ruang data di depan offset ini adalah ruang data yang tidak digunakan. Oleh karena itu, nilai ini juga mewakili jumlah awal ruang isi ulang yang tersedia dalam rantai MDL. Jika MdlChainNULL, DataOffset harus 0.
[in] DataLength
Panjang ruang data yang digunakan, dalam byte, dalam rantai MDL. Jika MdlChainNULL, DataLength harus 0.
Mengembalikan nilai
NdisAllocateNetBuffer mengembalikan pointer ke struktur NET_BUFFER yang dialokasikan NDIS. Jika alokasi tidak berhasil, penunjuk ini ADALAH NULL.
Keterangan
Panggil NdisFreeNetBuffer untuk membebaskan struktur NET_BUFFER yang dialokasikan dari kumpulan struktur NET_BUFFER .
Misalnya, jika rantai MDL asli berisi XDataLength dan YDataOffset, dan CurrentMdl dimulai dengan MDL (M) kedua dalam rantai MDL asli, CurrentMdlOffset adalah Z. Bidang MdlChain di NET_BUFFER_DATA kemudian perlu menunjuk ke rantai MDL baru yang berisi X'DataLength dan Y'DataOffset. Jika CurrentMdl dimulai dengan MDL ketiga (M') dalam rantai MDL baru, CurrentMdlOffset adalah Z', dan makro berikut perlu digunakan untuk mengatur bidang di NET_BUFFER:
NET_BUFFER_FIRST_MDL(_NB) = New MDL chain;
NET_BUFFER_DATA_LENGTH(_NB) = X';
NET_BUFFER_DATA_OFFSET(_NB) = Y';
NET_BUFFER_CURRENT_MDL(_NB) = M';
NET_BUFFER_CURRENT_MDL_OFFSET(_NB) = Z';
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), NdisAllocateNetBuffer(ndis) |