Freigeben über


Typen von Callouts

Die folgenden Arten von Legenden können mit WFP verwendet werden:

Inline-Inspektionsbeschriftung
Diese Art von Legende gibt immer FWP_ACTION_CONTINUE aus der klassifizierenFn-Funktion zurück und ändert den Netzwerkdatenverkehr in keiner Weise. Eine Legende, die Netzwerkstatistiken sammelt, ist ein Beispiel für diese Art von Legende.

Für diesen Legendentyp sollte der Filteraktionstyp (der durch das Element "Typ " der FWPS_ACTION0-Struktur angegeben wird) auf FWP_ACTION_CALLOUT_INSPECTION festgelegt werden.

Out-of-Band-Inspektionsbeschriftung
Diese Art von Legende ändert keinen Netzwerkdatenverkehr. Stattdessen wird jede Überprüfung zurückgestellt, die außerhalb der klassifizierenFn-Funktion durchgeführt werden soll, indem die angegebenen Daten "ausstehend" und dann die eingefügten Daten wieder in den TCP/IP-Stapel mit einer der Paketeinfügungsfunktionen zurückgeworfen werden. Ausstehend wird implementiert, indem zuerst die angegebenen Daten klonen, gefolgt von FWP_ACTION_BLOCK aus der klassifizierenFn-Funktion zurückgegeben wird, die den FWPS_CLASSIFY_OUT_FLAG_ABSORB Bitsatz aufweist.

Inlineänderungsbeschriftung
Diese Art von Beschriftung ändert den Netzwerkdatenverkehr, indem zuerst ein Klon der angegebenen Daten erstellt und dann der Klon geändert und schließlich der geänderte Klon aus der klassifizierenFn-Funktion wieder in den TCP/IP-Stapel eingefügt wird. Diese Art von Legende gibt auch FWP_ACTION_BLOCK aus der KlassifizierenFn-Funktion zurück, die den FWPS_CLASSIFY_OUT_FLAG_ABSORB Bitsatz aufweist.

Der Filteraktionstyp für diesen Legendentyp sollte auf FWP_ACTION_CALLOUT_TERMINATING festgelegt werden.

Out-of-Band-Änderungsbeschriftung
Dieser Legendentyp verweist zuerst auf das angegebene Paket mithilfe der FwpsReferenceNetBufferList0-Funktion , die den intentToModify-Parameter auf TRUE festgelegt hat. Die Legende gibt dann FWP_ACTION_BLOCK zurück, wobei der bitsatz FWPS_CLASSIFY_OUT_FLAG_ABSORB aus der klassifizierenFn-Funktion festgelegt ist. Wenn das Paket bereit ist, außerhalb der KlassifizierungFn zu ändern, klont die Legende das referenzierte Paket (sobald es geklont wird, kann das ursprüngliche Paket dann abgeleitet werden). Die Legende ändert dann den Klon und fügt das geänderte Paket wieder in den TCP/IP-Stapel ein.

Der Filteraktionstyp für diesen Legendentyp sollte auf FWP_ACTION_CALLOUT_TERMINATING festgelegt werden.

Umleitungs-Legende
Weitere Informationen zu diesem Legendentyp finden Sie unter Using Bind or Connect Redirection.For more information about this type of callout, see Using Bind or Connect Redirection.

Es gibt zwei Arten von Umleitungs-Legenden:

  • Eine Bindungsumleitungslegende ermöglicht es dem Popuptreiber, die lokale Adresse und den lokalen Port eines Sockets zu ändern.
  • Eine Legende zur Verbindungsumleitung ermöglicht es dem Popuptreiber, die Remoteadresse und den Remoteport einer Verbindung zu ändern.

Der Filteraktionstyp für diese Art von Legende sollte auf FWP_ACTION_PERMIT festgelegt werden.

Weitere Informationen zu FWPS_CLASSIFY_OUT_FLAG_ABSORB finden Sie unter FWPS_CLASSIFY_OUT0. Dieses Kennzeichen ist auf einer WFP-Verwerfensebene ungültig. Wenn sie FWP_ACTION_BLOCK mit der FWPS_CLASSIFY_OUT_FLAG_ABSORB Kennzeichnung aus der klassifizierenFn-Funktion zurückgeben, wird das Paket im Hintergrund verworfen, sodass das Paket nicht auf eine der WFP-Verwerfensebenen trifft, und es kann auch keine Überwachungsereignisse generiert werden.

Obwohl geklonte Netpufferlisten geändert werden können, z. B. durch Hinzufügen oder Entfernen von Netpuffern oder MDLs oder beides, müssen Legenden solche Änderungen rückgängig machen, bevor sie die Funktion FwpsFreeCloneNetBufferList0 aufrufen.

Um mit anderen Beschriftungen zu koexistieren, die Paketüberprüfungen, Paketänderungen oder Verbindungsumleitungen durchführen, bevor ein Paket mit dem Verweis-/Clone-Drop-Reinject-Mechanismus versehen wird, muss eine Legende das ursprüngliche Paket "hart" ablegen, indem das FWPS_RIGHT_ACTION_WRITE Flag im Rechtemember der FWPS_CLASSIFY_OUT0 Struktur gelöscht wird, die von der klassifizierenFn-Funktion zurückgegeben wird. Wenn das flag FWPS_RIGHT_ACTION_WRITE festgelegt wird, wenn "klassifizierenFn " aufgerufen wird (d. h., dass das Paket durchgestiftet und später erneut eingefügt oder geändert werden kann), darf die Legende nicht die Anzeige einordnen und sollte den aktuellen Aktionstyp nicht ändern, und es muss auf eine Legende mit höherer Gewichtung warten, um den Klon einzugeben, der geändert werden kann.

Das FWPS_RIGHT_ACTION_WRITE-Flag sollte festgelegt werden, wenn eine Beschriftung eine Klassifizierung eingibt. Ihr Legendentreiber sollte die FWPS_RIGHT_ACTION_WRITE Kennzeichnung testen, um die Rechte für Ihre Legende zu überprüfen, um eine Aktion zurückzugeben. Wenn dieses Kennzeichen nicht festgelegt ist, kann ihre Legende weiterhin eine FWP_ACTION_BLOCK Aktion zurückgeben, um eine FWP_ACTION_PERMIT Aktion zu vetoieren, die von einer vorherigen Legende zurückgegeben wurde. In dem Beispiel, das unter "Verwenden einer Legende für Deep Inspection" gezeigt wird, wird die Funktion einfach beendet, wenn das Kennzeichen nicht festgelegt ist.

Die FwpsPendOperation0-Funktion wird für Stiftpakete verwendet, die von den FWPM_LAYER_ALE_RESOURCE_ASSIGNMENT_XXX-, FWPM_LAYER_ALE_AUTH_LISTEN_XXX- oder FWPM_LAYER_ALE_AUTH_CONNECT_XXX-Verwaltungsfilterebenen stammen.

Die FwpsPendClassify0-Funktion wird für Stiftpakete verwendet, die aus den folgenden Laufzeitfilterebenen stammen:

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