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 函式所建立的插入句柄,並將 旗標 參數設定為 FWPS_INJECTION_TYPE_L2。
未使用 addressFamily 參數,而且應該設定為 AF_UNSPEC。
[in, optional] injectionContext
插入內容的選擇性句柄,可使用 FwpsQueryPacketInjectionState0 函式來擷取。
[in] flags
保留。 必須設定為零。
[in, optional] reserved
保留。 必須設定為 NULL。
[in] vSwitchId
篩選引擎在 FWPS_INCOMING_VALUES0 結構中傳遞至圖說文字驅動程式 分類Fn 圖說函式的虛擬交換器標識符。 這是xxx_VSWITCH_ID欄位中提供的虛擬交換器 GUID。
[in] vSwitchSourcePortId
虛擬交換器來源埠識別碼。
[in] vSwitchSourceNicIndex
虛擬交換器來源 NIC 索引。
netBufferLists
要插入虛擬交換器輸出數據路徑的 NET_BUFFER_LIST 結構鏈結。
[in] completionFn
completionFn 的指標, 圖說驅動程式所提供的圖說文字函式。 篩選引擎會在封包數據之後呼叫此函式,netBufferLists 參數,已插入虛擬交換器輸出數據路徑。 completionFn 函式將會針對鏈結中的每個 NET_BUFFER_LIST 呼叫一次。 插入複製或建立 NET_BUFFER_LIST 結構時,必須指定 completionFn。 當插入從篩選引擎接收的原始未轉換 NET_BUFFER_LIST 結構時,這個參數可以是 NULL。
[in, optional] completionContext
由 completionFn 參數所指向之圖說文字函式的圖說文字驅動程式提供內容指標。 這個參數是選擇性的,而且可以 NULL。
傳回值
FwpsInjectvSwitchEthernetIngressAsync0 函式會傳回下列其中一個 NTSTATUS 程式代碼。
傳回碼 | 描述 |
---|---|
|
已成功插入虛擬交換器 NET_BUFFER_LIST 鏈結。 |
|
發生錯誤。 |
言論
當圖說文字插入具有 FwpsInjectvSwitchEthernetIngressAsync0的封包時,如果封包符合原本分類的相同篩選條件,則插入的封包可能會再次分類。 因此,如同IP層的圖說文字,虛擬交換器圖說文字必須呼叫 FwpsQueryPacketInjectionState0 函式,以防止無限封包檢查。
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | 從 Windows 8 開始提供。 |
目標平臺 | 普遍 |
標頭 | fwpsk.h (包括 Fwpsk.h) |
連結庫 | Fwpkclnt.lib |
IRQL | <= DISPATCH_LEVEL |
另請參閱
FwpsAllocateNetBufferAndNetBufferList0