Fungsi NdisAllocateCloneNetBufferList (ndis/nblapi.h)
Panggil fungsi NdisAllocateCloneNetBufferList untuk membuat kloning baru NET_BUFFER_LIST struktur.
Sintaks
NDIS_EXPORTED_ROUTINE NET_BUFFER_LIST * NdisAllocateCloneNetBufferList(
[in] NET_BUFFER_LIST *OriginalNetBufferList,
[in, optional] NDIS_HANDLE NetBufferListPoolHandle,
[in, optional] NDIS_HANDLE NetBufferPoolHandle,
[in] ULONG AllocateCloneFlags
);
Parameter
[in] OriginalNetBufferList
Penunjuk ke struktur NET_BUFFER_LIST yang ada.
[in, optional] NetBufferListPoolHandle
Handel yang diperoleh dari panggilan ke Fungsi NdisAllocateNetBufferListPool .
[in, optional] NetBufferPoolHandle
Handel kumpulan struktur NET_BUFFER yang sebelumnya dikembalikan dari panggilan ke NdisAllocateNetBufferPool.
[in] AllocateCloneFlags
Bendera NDIS yang dapat dikombinasikan dengan operasi OR. Bendera berikut didefinisikan:
NDIS_CLONE_FLAGS_RESERVED
Dicadangkan untuk NDIS.
NDIS_CLONE_FLAGS_USE_ORIGINAL_MDLS
Jika bendera ini diatur, NDIS tidak mengalokasikan MDL baru untuk NET_BUFFER_LIST kloning. Sebaliknya, NET_BUFFER_LIST kloning menggunakan rantai MDL yang sama dengan NET_BUFFER_LIST asli. Jika NDIS_CLONE_FLAGS_USE_ORIGINAL_MDLS dibersihkan, NDIS mengalokasikan MDL baru untuk mereferensikan buffer data asli.
Mengembalikan nilai
NdisAllocateCloneNetBufferList mengembalikan pointer ke struktur NET_BUFFER_LIST klon baru. Jika alokasi tidak berhasil, pointer ini adalah NULL.
Keterangan
Panggil NdisAllocateCloneNetBufferList untuk membuat kloning NET_BUFFER_LIST struktur yang dapat Anda gunakan untuk mengirim data duplikat pada jalur data terpisah.
Setiap struktur NET_BUFFER dalam struktur NET_BUFFER_LIST asli hanya dikloning dari awal ruang data yang digunakan, bukan awal dari seluruh ruang data. Untuk mendapatkan offset dari awal ruang data ke awal ruang data yang digunakan, gunakan makro NET_BUFFER_DATA_OFFSET .
Jika struktur NET_BUFFER_LIST yang dikloning harus memiliki atribut yang terkait dengan kumpulan tertentu, pemanggil harus menentukan handel kumpulan di parameter NetBufferListPoolHandle atau NetBufferPoolHandle . Misalnya, anggota ProtocolType dari struktur NET_BUFFER_LIST dikaitkan dengan kumpulan.
Struktur NET_BUFFER_LIST kloning menjelaskan data yang sama yang dijelaskan oleh struktur NET_BUFFER_LIST di OriginalNetBufferList. NDIS tidak menyalin data yang dijelaskan oleh MDL asli ke buffer data baru. Sebaliknya, struktur kloning mereferensikan buffer data asli. Struktur NET_BUFFER_LIST kloning tidak menyertakan awal NET_BUFFER_LIST_CONTEXT struktur.
Memanggil Fungsi NdisFreeCloneNetBufferList untuk membebaskan struktur NET_BUFFER_LIST dan semua struktur terkait dan rantai MDL yang dialokasikan dengan memanggil NdisAllocateCloneNetBufferList.
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), NdisAllocateCloneNetBufferList(ndis), NdisAllocateCloneNetBufferList_InitFail(ndis) |
Lihat juga
NdisAllocateNetBufferListPoolSaran 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