Bagikan melalui


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.

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

 

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.

Catatan Atur parameter addressFamily dari fungsi FwpsInjectionHandleCreate0 ke AF_UNSPEC.
 

[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
STATUS_SUCCESS
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.
STATUS_FWP_TCPIP_NOT_READY
Lapisan MAC belum siap untuk menerima injeksi data paket.
STATUS_FWP_INJECT_HANDLE_CLOSING
Handel injeksi sedang ditutup.
STATUS_FWP_INJECT_HANDLE_STALE
Handel injeksi tidak dibuat dengan parameter bendera Fungsi FwpsInjectionHandleCreate0 diatur ke FWPS_INJECTION_TYPE_L2.
Kode status lainnya
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

Lihat juga

FwpsAllocateCloneNetBufferList0 FwpsAllocateNetBufferAndNetBufferList0 FwpsInjectionHandleCreate0

FwpsQueryPacketInjectionState0

NET_BUFFER_LIST

classifyFn

completionFn