Fungsi NdisAllocateNetBuffer (ndis/nblapi.h)
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) |
Lihat juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk