共用方式為


圖說文字的類型

下列類型的圖說文字可以與 WFP 搭配使用:

內嵌檢查圖說文字
這種類型的圖說文字一律會從 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 參數設定為 TRUE FwpsReferenceNetBufferList0式來參考指定的封包。 接著,圖說文字會傳回FWP_ACTION_BLOCK,其中包含來自classifyFn函式的 FWPS_CLASSIFY_OUT_FLAG_ABSORB位集。 當封包準備好在 classifyFn 外部修改時,圖說文字會複製參考的封包(一旦複製,就可以取值原始封包)。 圖說文字接著會修改複製品,並將修改過的封包插入 TCP/IP 堆棧中。

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

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

重新導向註標有兩種類型:

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

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

如需FWPS_CLASSIFY_OUT_FLAG_ABSORB的詳細資訊,請參閱FWPS_CLASSIFY_OUT0。 此旗標在任何 WFP 捨棄圖層上都無效。 傳回具有來自 classifyFn 函式的 FWPS_CLASSIFY_OUT_FLAG_ABSORB 旗標所設定FWP_ACTION_BLOCK會導致封包以無訊息方式捨棄,這樣封包就不會達到任何 WFP 捨棄層,也不會產生稽核事件。

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

若要與其他執行封包檢查、封包修改或連線重新導向的圖說文字共存,在封包以 reference/clone-drop-reinject 機制貼上封包之前,圖說文字必須透過清除分類Fn 函式所傳回之FWPS_CLASSIFY_OUT0結構的許可權成員中的FWPS_RIGHT_ACTION_WRITE標來「硬式」卸除原始封包。 如果在呼叫 classifyFn設定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