FwpsInjectvSwitchEthernetIngressAsync0 函式 (fwpsk.h)
FwpsInjectvSwitchEthernetIngressAsync0 (是 FwpsInjectvSwitchIngressAsync0) 函式會重新檢視先前已吸收的虛擬交換器封包, (未修改的) 回到攔截的虛擬交換器輸入數據路徑。 此函式也可以插入使用 FwpsAllocateNetBufferAndNetBufferList0 函式建立的封包。
語法
NTSTATUS FwpsInjectvSwitchEthernetIngressAsync0(
[in] HANDLE injectionHandle,
[in, optional] HANDLE injectionContext,
[in] UINT32 flags,
[in, optional] void *reserved,
[in] const FWP_BYTE_BLOB *vSwitchId,
[in] NDIS_SWITCH_PORT_ID vSwitchSourcePortId,
[in] NDIS_SWITCH_NIC_INDEX vSwitchSourceNicIndex,
NET_BUFFER_LIST *netBufferLists,
[in] FWPS_INJECT_COMPLETE completionFn,
[in, optional] HANDLE completionContext
);
參數
[in] injectionHandle
先前由 呼叫 FwpsInjectionHandleCreate0 函式所建立的插入句柄, 並將 flags 參數設定為 FWPS_INJECTION_TYPE_L2。
addressFamily 參數未使用,而且應該設定為 AF_UNSPEC。
[in, optional] injectionContext
可透過 FwpsQueryPacketInjectionState0 函式擷取之插入內容的選擇性句柄。
[in] flags
保留的。 必須設定為零。
[in, optional] reserved
保留的。 必須設定為 NULL。
[in] vSwitchId
篩選引擎傳遞至圖說文字驅動程序分類Fn 圖說函式之FWPS_INCOMING_VALUES0結構的虛擬交換器標識碼。 這是xxx_VSWITCH_ID欄位中提供的虛擬交換器的 GUID 。
[in] vSwitchSourcePortId
虛擬交換器來源埠識別碼。
[in] vSwitchSourceNicIndex
虛擬交換器來源 NIC 索引。
netBufferLists
要插入虛擬交換器輸出數據路徑的 NET_BUFFER_LIST 結構鏈結。
[in] completionFn
圖說文字驅動程式所提供 之 completionFn 圖說文字函式的指標。 篩選引擎會在封包數據插入至虛擬交換器輸出數據路徑之後,於 netBufferLists 參數呼叫此函式。 完成Fn 函式會針對鏈結中的每個NET_BUFFER_LIST呼叫一次。 插入複製或建立NET_BUFFER_LIST結構時,必須指定 completionFn。 插入從篩選引擎接收的原始未變更 NET_BUFFER_LIST 結構時,此參數可以是 NULL。
[in, optional] completionContext
圖說文字驅動程式提供的指標,傳遞至 completionFn 參數所指向的圖說文字函式。 此參數是選擇性的,可以是 NULL。
傳回值
FwpsInjectvSwitchEthernetIngressAsync0 函式會傳回下列其中一個 NTSTATUS 代碼。
傳回碼 | Description |
---|---|
|
已成功插入虛擬交換器 NET_BUFFER_LIST 鏈結。 |
|
發生錯誤。 |
備註
當圖說文字使用 FwpsInjectvSwitchEthernetIngressAsync0 插入封包時,如果封包符合原本分類的相同篩選條件,則插入的封包可能會再次分類。 因此,如同IP層的圖說文字,虛擬交換器圖說文字必須呼叫 FwpsQueryPacketInjectionState0 函式,以防止無限封包檢查。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | 從 Windows 8 開始提供。 |
目標平台 | Universal |
標頭 | fwpsk.h (包含 Fwpsk.h) |
程式庫 | Fwpkclnt.lib |
IRQL | <= DISPATCH_LEVEL |
另請參閱
FwpsAllocateNetBufferAndNetBufferList0