Fungsi FwpsInjectionHandleCreate0 (fwpsk.h)
Fungsi FwpsInjectionHandleCreate0 membuat handel yang dapat digunakan oleh fungsi injeksi paket untuk menyuntikkan paket atau mengalirkan data ke tumpukan jaringan TCP/IP dan oleh fungsi FwpsQueryPacketInjectionState0 untuk mengkueri status injeksi paket.
Sintaks
NTSTATUS FwpsInjectionHandleCreate0(
[in, optional] ADDRESS_FAMILY addressFamily,
[in] UINT32 flags,
[out] HANDLE *injectionHandle
);
Parameter
[in, optional] addressFamily
Keluarga alamat tempat handel injeksi sedang dibuat. Ini bisa menjadi salah satu keluarga alamat berikut:
AF_UNSPEC
Keluarga alamat tidak ditentukan.
AF_INET
Keluarga alamat IPv4.
AF_INET6
Keluarga alamat IPv6.
Untuk injeksi transportasi, streaming, dan penerusan, parameter ini bersifat opsional dan dapat diatur ke AF_UNSPEC, yang menunjukkan keluarga alamat yang tidak ditentukan. Nilai ini didefinisikan dalam Ws2def.h.
[in] flags
Nilai bendera yang ditetapkan oleh driver callout untuk menunjukkan jenis data yang akan disuntikkan. Bendera ini bisa memiliki satu atau beberapa nilai berikut:
FWPS_INJECTION_TYPE_FORWARD
Data paket akan disuntikkan dengan memanggil Fungsi FwpsInjectForwardAsync0 .
FWPS_INJECTION_TYPE_NETWORK
Data jaringan akan disuntikkan dengan memanggil Fungsi FwpsInjectNetworkReceiveAsync0 atau Fungsi FwpsInjectNetworkSendAsync0 .
FWPS_INJECTION_TYPE_STREAM
Stream data akan disuntikkan dengan memanggil Fungsi FwpsStreamInjectAsync0 .
FWPS_INJECTION_TYPE_TRANSPORT
Data transportasi akan disuntikkan dengan memanggil Fungsi FwpsInjectTransportReceiveAsync0 atau Fungsi FwpsInjectTransportSendAsync0 .
Untuk membuat handel injeksi yang akan digunakan oleh beberapa fungsi injeksi, gabungkan bit jenis injeksi dengan operasi OR bitwise. Jika nilai bendera diatur ke nol, handel injeksi yang dihasilkan dapat digunakan untuk injeksi transportasi, streaming, dan penerusan.
[out] injectionHandle
Penunjuk ke variabel yang menerima handel.
Nilai kembali
Fungsi FwpsInjectionHandleCreate0 mengembalikan salah satu kode NTSTATUS berikut.
Menampilkan kode | Deskripsi |
---|---|
|
Handel injeksi berhasil dibuat. |
|
Tumpukan jaringan TCP/IP belum siap. Driver callout harus memanggil fungsi FwpsInjectionHandleCreate0 lagi di lain waktu untuk membuat handel injeksi. |
|
Terjadi kesalahan. |
Keterangan
Driver callout memanggil fungsi FwpsInjectionHandleCreate0 untuk membuat handel yang dapat digunakan untuk menyuntikkan paket atau mengalirkan data ke tumpukan jaringan TCP/IP dan untuk mengkueri status injeksi paket. Driver callout meneruskan handel yang dibuat ke fungsi injeksi paket dan FwpsQueryPacketInjectionState0.
Setelah driver callout selesai menggunakan handel injeksi, driver tersebut harus memanggil fungsi FwpsInjectionHandleDestroy0 untuk menghancurkan handel. Jika injeksi yang tertunda belum selesai, fungsi ini akan menunggu penyelesaiannya sebelum kembali.
Ketika injeksi dilakukan ke lapisan jaringan dan keluarga alamat IPv4 dan IPv6 sedang difilter, driver callout harus membuat dua handel injeksi dengan memanggil fungsi FwpsInjectionHandleCreate0 dua kali: satu panggilan dengan addressFamily diatur ke AF_INET, dan panggilan kedua dengan addressFamily diatur ke AF_INET6.
Untuk lapisan MAC ( *MAC_FRAME_NATIVE, *MAC_FRAME_ETHERNET, *VSWITCH_ETHERNET), Anda dapat menggunakan handel injeksi yang sama yang diperoleh dengan bendera FWPS_INJECTION_TYPE_L2. Jenis Injeksi terikat lebih dekat ke fungsi injeksi daripada lapisan.
Untuk contoh kode, lihat HelperFunctions_InjectionData.cpp WFPSampler.
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 | PASSIVE_LEVEL |