Bagikan melalui


Fungsi FwpsAllocateCloneNetBufferList0 (fwpsk.h)

Fungsi FwpsAllocateCloneNetBufferList0 mengalokasikan struktur NET_BUFFER_LIST yang merupakan klon struktur NET_BUFFER_LIST yang ada.

CatatanFwpsAllocateCloneNetBufferList0 adalah versi spesifik dari FwpsAllocateCloneNetBufferList. Lihat Nama Version-Independent WFP dan Menargetkan Versi Windows Tertentu untuk informasi selengkapnya.
 

Sintaks

NTSTATUS FwpsAllocateCloneNetBufferList0(
  [in, out]      NET_BUFFER_LIST *originalNetBufferList,
  [in, optional] NDIS_HANDLE     netBufferListPoolHandle,
  [in, optional] NDIS_HANDLE     netBufferPoolHandle,
  [in]           ULONG           allocateCloneFlags,
  [out]          NET_BUFFER_LIST **netBufferList
);

Parameter

[in, out] originalNetBufferList

Penunjuk ke struktur NET_BUFFER_LIST asli yang sedang dikloning.

[in, optional] netBufferListPoolHandle

Handel kumpulan NET_BUFFER_LIST yang diperoleh dari panggilan sebelumnya ke Fungsi NdisAllocateNetBufferListPool . Parameter ini bersifat opsional dan dapat berupa NULL.

[in, optional] netBufferPoolHandle

Handel kumpulan NET_BUFFER yang diperoleh dari panggilan sebelumnya ke fungsi NdisAllocateNetBufferPool . Parameter ini bersifat opsional dan dapat berupa NULL.

[in] allocateCloneFlags

Saat ini tidak ada bendera yang ditentukan untuk fungsi ini. Driver callout harus mengatur parameter ini ke nol.

[out] netBufferList

Penunjuk ke variabel yang menerima penunjuk ke struktur NET_BUFFER_LIST kloning.

Nilai kembali

Fungsi FwpsAllocateCloneNetBufferList0 mengembalikan salah satu kode NTSTATUS berikut.

Menampilkan kode Deskripsi
STATUS_SUCCESS
Struktur NET_BUFFER_LIST kloning berhasil dialokasikan.
Kode status lainnya
Terjadi kesalahan.

Keterangan

Driver callout memanggil fungsi FwpsAllocateCloneNetBufferList0 untuk mengalokasikan kloning NET_BUFFER_LIST struktur NET_BUFFER_LIST yang ada.

Fungsi ini adalah pembungkus di sekitar Fungsi NdisAllocateCloneNetBufferList , tetapi dikhususkan untuk digunakan oleh fungsi injeksi paket WFP.

Jika struktur kloning NET_BUFFER_LIST harus memiliki atribut yang terkait dengan kumpulan tertentu, driver callout harus menentukan handel kumpulan di parameter NetBufferListPoolHandle atau NetBufferPoolHandle . Jika parameter ini NULL, kumpulan default yang dialokasikan sebelumnya oleh NDIS akan digunakan.

Struktur NET_BUFFER_LIST klon menjelaskan data yang sama yang dijelaskan oleh struktur NET_BUFFER_LIST asli. Fungsi FwpsAllocateCloneNetBufferList0 tidak menyalin data yang dijelaskan oleh MDL asli ke buffer data baru. Sebaliknya, kloning NET_BUFFER_LIST struktur mereferensikan buffer data asli. Struktur NET_BUFFER_LIST kloning tidak menyertakan awal NET_BUFFER_LIST_CONTEXT struktur.

Fungsi ini mengatur anggota ParentNetBufferList dari struktur NET_BUFFER_LIST klon yang baru dibuat untuk menunjuk ke struktur NET_BUFFER_LIST induk. Anggota ChildRefCount struktur induk bertambah 1.

Driver callout dapat memodifikasi kloning NET_BUFFER_LIST struktur dan menyuntikkannya ke tumpukan jaringan sebagai ganti struktur NET_BUFFER_LIST asli dengan memanggil fungsi injeksi paket. Setelah data yang dijelaskan oleh kloning NET_BUFFER_LIST struktur telah berhasil disuntikkan ke tumpukan jaringan, driver callout membebaskan kloning struktur NET_BUFFER_LIST dengan memanggil fungsi FwpsFreeCloneNetBufferList0 .

Driver callout dapat menyisipkan atau mengganti buffer net individual (NET_BUFFER) atau MDL di dalam daftar buffer net kloning. Driver seperti itu juga harus membatalkan modifikasi sebelum memanggil Fungsi FwpsFreeCloneNetBufferList0 .

Panduan untuk Mengelola Paket Kloning

Driver callout tidak boleh menyimpan paket kloning tanpa batas waktu. Paket kloning dapat mengganggu operasi manajemen daya pada komputer yang menganggur.

Penggunaan yang dimaksudkan untuk paket kloning di WFP adalah untuk mendapatkan klarifikasi dari aplikasi mode pengguna atau operasi lain yang relatif cepat. Driver callout tidak boleh menyimpan paket kloning sementara, misalnya, menunggu input pengguna, atau menunggu izin layanan web, atau menunggu operasi lain yang mungkin memakan waktu seselang-segan.

Jika driver callout perlu menunggu operasi yang berpotensi panjang, itu membuat salinan mendalam paket menggunakan FwpsAllocateNetBufferAndNetBufferList0, dan memblokir dan menyerap paket asli.

Driver callout harus selalu mengembalikan paket yang ditahan secepat mungkin.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Tersedia dimulai dengan Windows Vista.
Target Platform Universal
Header fwpsk.h (termasuk Fwpsk.h)
Pustaka Fwpkclnt.lib
IRQL <= DISPATCH_LEVEL

Lihat juga

FwpsFreeCloneNetBufferList0

NET_BUFFER

NET_BUFFER_LIST

NET_BUFFER_LIST_CONTEXT

NdisAllocateNetBufferListPool

NdisAllocateNetBufferPool

Fungsi Injeksi Paket