圖說文字的類型

下列圖說文字類型可以搭配一起使用:

內嵌檢查圖說文字
這種類型的圖說文字一律會從classifyFn函式傳回FWP_ACTION_CONTINUE,而且不會以任何方式修改網路流量。 收集網路統計資料的圖說文字是這種圖說文字的範例。

針對這種類型的圖說文字,篩選動作類型 (由FWPS_ACTION0結構) 的Type成員所指定,應該設定為FWP_ACTION_CALLOUT_INSPECTION

頻外檢查圖說文字
這種類型的圖說文字不會修改網路流量。 相反地,它會延遲在 分類Fn 函式外部執行的任何檢查,方法是「擱置」指示的資料,然後使用其中一個 封包插入函式將畫筆資料重新插入 TCP/IP 堆疊。 暫止是先複製指示的資料,然後從具有FWPS_CLASSIFY_OUT_FLAG_ABSORB位集的classifyFn函式傳回FWP_ACTION_BLOCK

內嵌修改圖說文字
這種類型的圖說文字會先複製指示的資料,然後修改複製,最後從 classifyFn 函式將修改過的複製插入 TCP/IP 堆疊,以修改網路流量。 這種類型的圖說文字也會從已設定 FWPS_CLASSIFY_OUT_FLAG_ABSORB 位的 classifyFn 函式傳回 FWP_ACTION_BLOCK

此圖說文字類型的篩選動作類型應該設定為 FWP_ACTION_CALLOUT_TERMINATING

頻外修改圖說文字
這種類型的圖說文字會先使用將 intentToModify參數設定為TRUEFwpsReferenceNetBufferList0函式來參考指定的封包。 接著,圖說文字會從classifyFn函式傳回FWPS_CLASSIFY_OUT_FLAG_ABSORB位集FWP_ACTION_BLOCK。 當封包準備好在 classifyFn外部修改時,圖說文字會在複製時立即複製參考的封包 (,然後原始封包就可以) 取值。 接著,圖說文字會修改複製品,並將修改過的封包插入 TCP/IP 堆疊中。

此圖說文字類型的篩選動作類型應該設定為 FWP_ACTION_CALLOUT_TERMINATING

重新導向圖說文字
如需這種類型的圖說文字的詳細資訊,請參閱 使用系結或連線重新導向

重新導向圖說文字有兩種類型:

  • 系結重新導向圖說文字可讓圖說文字驅動程式修改通訊端的本機位址和本機埠。
  • 連線重新導向圖說文字可讓圖說文字驅動程式修改連線的遠端位址和遠端埠。

此圖說文字類型的篩選動作類型應該設定為 FWP_ACTION_PERMIT

如需 FWPS_CLASSIFY_OUT_FLAG_ABSORB的詳細資訊,請參閱 FWPS_CLASSIFY_OUT0。 此旗標在任何一個不一樣地捨棄圖層上無效。 從classifyFn函式傳回FWPS_CLASSIFY_OUT_FLAG_ABSORB旗標設定的FWP_ACTION_BLOCK會導致封包以無訊息方式捨棄,如此一來,封包就不會叫用任何一個至任何一個「其」捨棄層,也不會產生稽核事件。

雖然可以修改複製的 net 緩衝區清單,例如,藉由新增或移除 net 緩衝區或 MDL,或是兩者,呼叫 FwpsFreeCloneNetBufferList0 函式之前,圖說文字必須先復原這類修改。

若要與其他執行封包檢查、封包修改或連線重新導向的圖說文字共存,在封包以 reference/clone-drop-reinject 機制傳送封包之前,圖說文字必須「硬式」卸載原始封包,方法是清除classifyFn函式所傳回之FWPS_CLASSIFY_OUT0結構的許可權成員中的FWPS_RIGHT_ACTION_WRITE旗標。 如果在呼叫classify (Fn時設定FWPS_RIGHT_ACTION_WRITE旗標,這表示封包可以畫筆,稍後重新檢視或修改) ,則圖說文字不得畫筆指示,且不應該變更目前的動作類型;而且必須等候較高權數的圖說文字來插入可能修改的複製品。

每當圖說文字畫筆分類時,應該設定 FWPS_RIGHT_ACTION_WRITE 旗標。 圖說文字驅動程式應該測試 FWPS_RIGHT_ACTION_WRITE 旗標,以檢查圖說文字的許可權以傳回動作。 如果未設定此旗標,您的圖說文字仍可傳回 FWP_ACTION_BLOCK 動作,以保留先前圖說文字所傳回 的FWP_ACTION_PERMIT 動作。 在 [ 使用注標進行深入檢查] 所示的範例中,如果未設定旗標,函式就會結束。

FwpsPendOperation0函式是用來畫筆封包,這些封包源自FWPM_LAYER_ALE_RESOURCE_ASSIGNMENT_XXXFWPM_LAYER_ALE_AUTH_LISTEN_XXXFWPM_LAYER_ALE_AUTH_CONNECT_XXX管理篩選層

FwpsPendClassify0函式是用於來自下列執行時間篩選層的畫筆封包:

FWPS_LAYER_ALE_ENDPOINT_CLOSURE_V4 FWPS_LAYER_ALE_ENDPOINT_CLOSURE_V6 FWPS_LAYER_ALE_CONNECT_REDIRECT_V4 FWPS_LAYER_ALE_CONNECT_REDIRECT_V6 FWPS_LAYER_ALE_BIND_REDIRECT_V4 FWPS_LAYER_ALE_BIND_REDIRECT_V6