Fungsi FwpsInjectMacSendAsync0 (fwpsk.h)
Fungsi FwpsInjectMacSendAsync0 dapat menyuntikkan kembali bingkai kontrol akses media (MAC) yang sebelumnya diserap (atau kloning bingkai) kembali ke jalur data keluar lapisan 2 tempatnya dicegat, atau menyuntikkan bingkai MAC yang ditemukan.
Sintaks
NTSTATUS FwpsInjectMacSendAsync0(
[in] HANDLE injectionHandle,
[in, optional] HANDLE injectionContext,
[in] UINT32 flags,
[in] UINT16 layerId,
[in] IF_INDEX interfaceIndex,
[in] NDIS_PORT_NUMBER NdisPortNumber,
[in, out] NET_BUFFER_LIST *netBufferLists,
[in] FWPS_INJECT_COMPLETE completionFn,
[in, optional] HANDLE completionContext
);
Parameter
[in] injectionHandle
Handel injeksi yang sebelumnya diperoleh oleh panggilan ke fungsi FwpsInjectionHandleCreate0 dengan parameter bendera diatur ke FWPS_INJECTION_TYPE_L2.
[in, optional] injectionContext
Handel opsional ke konteks injeksi. Jika ditentukan, itu dapat diperoleh dengan memanggil Fungsi FwpsQueryPacketInjectionState0 saat status injeksi paket FWPS_PACKET_INJECTION_STATEFWPS_PACKET_INJECTED_BY_SELF atau FWPS_PACKET_PREVIOUSLY_INJECTED_BY_SELF.
[in] flags
Dicadangkan. Harus diatur ke nol.
[in] layerId
Pengidentifikasi run-time untuk lapisan pemfilteran tempat aliran data sedang diproses.
[in] interfaceIndex
Indeks antarmuka yang diteruskan ke nilai masuk classifyFn driver callout FWPS_FIELD_XxxMAC_FRAMEXxx_INTERFACE_INDEX.
[in] NdisPortNumber
Nomor port NDIS yang diteruskan ke nilai masuk driver calloutFn FWPS_FIELD_XxxMAC_FRAMEXxx_NDIS_PORT.
[in, out] netBufferLists
Penunjuk ke struktur NET_BUFFER_LIST yang menjelaskan data paket yang sedang disuntikkan. Driver callout mengalokasikan struktur NET_BUFFER_LIST untuk digunakan untuk menyuntikkan data paket dengan memanggil fungsi FwpsAllocateCloneNetBufferList0 atau fungsi FwpsAllocateNetBufferAndNetBufferList0 . Struktur NET_BUFFER_LIST harus dimulai dengan header MAC.
[in] completionFn
Penunjuk ke fungsi callout completionFn yang disediakan oleh driver callout. Mesin filter memanggil fungsi ini setelah data paket, yang dijelaskan oleh parameter netBufferLists , telah disuntikkan ke dalam tumpukan jaringan. Penunjuk ini harus ditentukan saat menyuntikkan struktur NET_BUFFER_LIST yang dikloning atau dibuat. Saat menyuntikkan struktur NET_BUFFER_LIST asli, parameter ini dapat berupa NULL jika struktur asli tidak diubah.
[in, optional] completionContext
Penunjuk ke konteks yang disediakan driver callout yang diteruskan ke fungsi callout yang diarahkan oleh parameter completionFn . Parameter ini bersifat opsional dan dapat berupa NULL.
Mengembalikan nilai
Fungsi FwpsInjectMacSendAsync0 mengembalikan salah satu kode NTSTATUS berikut.
Menampilkan kode | Deskripsi |
---|---|
|
Injeksi data bingkai MAC berhasil dimulai. Mesin filter memanggil fungsi penyelesaian setelah mesin filter selesai menyuntikkan data bingkai MAC, atau ketika kesalahan terjadi kemudian. Jika terjadi kesalahan, anggota Status struktur NET_BUFFER_LIST yang telah selesai akan menunjukkan alasan kegagalan. |
|
Lapisan MAC belum siap untuk menerima injeksi data paket. |
|
Handel injeksi sedang ditutup. |
|
Handel injeksi tidak dibuat dengan parameter bendera Fungsi FwpsInjectionHandleCreate0 diatur ke FWPS_INJECTION_TYPE_L2. |
|
Terjadi kesalahan. |
Keterangan
Driver panggilan balik memanggil fungsi FwpsInjectMacSendAsync0 untuk menyuntikkan kembali bingkai MAC yang sebelumnya diserap (atau kloning bingkai) kembali ke jalur data masuk lapisan 2 tempat bingkai MAC disadap, atau untuk menyuntikkan bingkai MAC yang ditemukan.
Parameter netBufferLists dapat menjadi rantai NET_BUFFER_LIST . Namun fungsi penyelesaian dapat dipanggil masing-masing beberapa kali, menyelesaikan segmen (atau satu NET_BUFFER_LIST) rantai.
Bingkai yang disuntikkan bisa diklasifikasikan lagi jika paket cocok dengan filter yang sama seperti yang awalnya diklasifikasikan. Oleh karena itu, seperti halnya callout di lapisan IP, callout lapisan 2 juga harus melindungi dari inspeksi paket tak terbatas dengan memanggil FwpsQueryPacketInjectionState0.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Tersedia dimulai dengan Windows 8. |
Target Platform | Universal |
Header | fwpsk.h (termasuk Fwpsk.h) |
Pustaka | Fwpkclnt.lib |
IRQL | <= DISPATCH_LEVEL |