Freigeben über


FWPS_CALLOUT2-Struktur (fwpsk.h)

Die FWPS_CALLOUT2-Struktur definiert die Daten, die für einen Legendentreiber erforderlich sind, um eine Legende bei der Filter-Engine zu registrieren.

Beachten SieFWPS_CALLOUT2 die spezifische Version von FWPS_CALLOUT ist, die in Windows 8 und höher verwendet wird. Weitere Informationen finden Sie unter WFP Version-Independent Namen und Zielgruppenspezifische Windows-Versionen . Für Windows 7 ist FWPS_CALLOUT1 verfügbar. Für Windows Vista ist FWPS_CALLOUT0 verfügbar.

 

Syntax

typedef struct FWPS_CALLOUT2_ {
  GUID                                calloutKey;
  UINT32                              flags;
  FWPS_CALLOUT_CLASSIFY_FN2           classifyFn;
  FWPS_CALLOUT_NOTIFY_FN2             notifyFn;
  FWPS_CALLOUT_FLOW_DELETE_NOTIFY_FN0 flowDeleteFn;
} FWPS_CALLOUT2;

Member

calloutKey

Eine vom Legendentreiber definierte GUID , die die Legende eindeutig identifiziert.

flags

Flags, die beschriftungsspezifische Parameter angeben. Mögliche Flags sind:

Wert Bedeutung
FWP_CALLOUT_FLAG_CONDITIONAL_ON_FLOW
0x00000001
Ein Legendentreiber kann dieses Flag angeben, wenn eine Legende registriert wird, die auf einer Ebene hinzugefügt wird, die Datenflüsse unterstützt. Wenn dieses Flag angegeben ist, ruft die Filter-Engine die Legendenfunktion klassifizierenFn2 des Legendentreibers nur dann auf, wenn dem Datenfluss ein Kontext zugeordnet ist. Ein Legendentreiber ordnet einen Kontext einem Datenfluss zu, indem er die Funktion FwpsFlowAssociateContext0 aufruft .
FWP_CALLOUT_FLAG_ALLOW_OFFLOAD
0x00000002
Ein Legendentreiber gibt dieses Flag an, um anzugeben, dass die Legendenfunktion klassifizierenFn2 des Legendentreibers nicht durch das Auslagern der Netzwerkdatenverarbeitung in ausladende Netzwerkschnittstellenkarten (NICs) beeinträchtigt wird. Wenn dieses Flag nicht angegeben ist, wird die Auslagerung der Netzwerkdatenverarbeitung für den gesamten Datenverkehr deaktiviert, der von Filtern verarbeitet wird, die die Legende für die Aktion des Filters angeben.
FWP_CALLOUT_FLAG_ENABLE_COMMIT_ADD_NOTIFY
0x00000004
Ein Legendentreiber gibt dieses Flag an, um anzugeben, dass er Benachrichtigungen über Objekte und Filter empfangen kann, die innerhalb einer Transaktion hinzugefügt werden. Die Filter-Engine sendet die Benachrichtigung nach dem Commit der Transaktion.
FWP_CALLOUT_FLAG_ALLOW_MID_STREAM_INSPECTION
0x00000008
Ein Legendentreiber gibt dieses Flag an, um anzugeben, dass er eine dynamische Streamüberprüfung von Datenflüssen auf Streamebene durchführen kann. Weitere Informationen finden Sie unter Stream Inspektion.
FWP_CALLOUT_FLAG_ALLOW_RECLASSIFY
0x00000010
Ein Legendentreiber gibt dieses Flag an, um sich für den Aufruf zu registrieren, wenn ein vorhandener Socketvorgang neu klassifiziert wird.
FWP_CALLOUT_FLAG_RESERVED1
0x00000020
Ist für das System reserviert. Legendentreiber sollten dieses Flag ignorieren.
FWP_CALLOUT_FLAG_ALLOW_RSC
0x00000040
Ein Legendentreiber gibt dieses Flag an, um anzugeben, dass die Legende tcp Receive Segment Coalescing (RSC) mit großen Paketen von bis zu 64K unterstützt. Wenn dieses Flag nicht angegeben und eine Legende registriert ist, wird RSC für den gesamten Datenverkehr deaktiviert, der von Filtern verarbeitet wird, die die Legende für die Aktion des Filters angeben.
FWP_CALLOUT_FLAG_ALLOW_L2_BATCH_CLASSIFY
0x00000080
Ein Legendentreiber gibt dieses Flag an, wenn eine Legende registriert wird, die auf Ebene 2 hinzugefügt wird, um anzugeben, dass seine KlassifizierungFn2-Legendenfunktion mehrere verkettete NET_BUFFER_LIST-Strukturen klassifizieren kann. Weitere Informationen finden Sie unter Verwenden der Layer-2-Filterung.
Vorsicht  

Wenn ein Legendentreiber dieses Flag festlegt, kann er die folgenden Funktionen nicht verwenden, um NET_BUFFER_LISTs zu ändern.

Mit diesem Flagsatz gibt FwpsAllocateCloneNetBufferList0 immer einen INVALID_PARAMETER Fehler zurück. Dies kann unerwartet dazu führen, dass ein 3-Drittanbieter-Callouttreiber die Referenzanzahl von NET_BUFFER_LISTs nicht verwaltet, wodurch Sende- und Empfangsvorgänge beendet werden.

FWP_CALLOUT_FLAG_ALLOW_USO
0x00000100
Ein Legendentreiber gibt dieses Flag an, um anzugeben, dass die Legende UDP-Segmentierungsauslagerung (UDP Segmentation Offload, USO) mit Paketen unterstützt, die größer als die MTU des Netzwerkmediums sind. Wenn dieses Flag nicht angegeben und eine Legende registriert wird, wird USO für den gesamten Datenverkehr deaktiviert, der von filtern verarbeitet wird, die die Legende für die Aktion des Filters angeben. Hinweis: Die früheste Version, für die dieses Flag unterstützt wird, ist Windows Insider Preview, Version 10.0.25876.
FWP_CALLOUT_FLAG_ALLOW_URO
0x00000200
Ein Legendentreiber gibt dieses Flag an, um anzugeben, dass die Legende udp Receive Offload (URO) mit großen Paketen von bis zu 64K unterstützt. Wenn dieses Flag nicht angegeben und eine Legende registriert ist, wird URO für den gesamten Datenverkehr deaktiviert, der von filtern verarbeitet wird, die die Legende für die Aktion des Filters angeben. Hinweis: Wenn dieses Flag angegeben ist, dürfen Legenden eingehende URO-Pakete nicht klonen und erneut auswerfen.

classifyFn

Ein Zeiger auf die Legendentreiberfunktion klassifizierenFn2 . Die Filter-Engine ruft diese Funktion auf, wenn Netzwerkdaten vorhanden sind, die von der Legende verarbeitet werden sollen.

notifyFn

Ein Zeiger auf die Funktion notifyFn2 des Legendentreibers. Die Filter-Engine ruft diese Funktion auf, um den Legendentreiber über Ereignisse zu benachrichtigen, die der Legende zugeordnet sind.

flowDeleteFn

Ein Zeiger auf die Legendenfunktion flowDeleteFn des Legendentreibers. Die Filter-Engine ruft diese Funktion immer dann auf, wenn ein Von der Legende verarbeiteter Datenfluss beendet wird.

Wenn ein Legendentreiber den Datenflüssen, die die Legende verarbeitet, keinen Kontext ordnet, sollte dieser Member auf NULL festgelegt werden.

Hinweise

Ein Legendentreiber übergibt einen Zeiger auf eine initialisierte FWPS_CALLOUT2-Struktur an die FwpsCalloutRegister2-Funktion , wenn er eine Legende beim Filtermodul registriert.

Eine Legende kann das FWP_CALLOUT_FLAG_CONDITIONAL_ON_FLOW-Flag nur für Verbindungen festlegen, für die der Treiber an Streamüberprüfungen interessiert ist. Diese Beschriftung wird bei allen anderen Verbindungen ignoriert. Die Leistung wird verbessert, und der Treiber muss keine unnötigen Zustandsdaten verwalten.

Diese Struktur ist im Wesentlichen identisch mit der vorherigen Version , FWPS_CALLOUT1. Der einzige Unterschied besteht darin, dass die Member dieser Version die aktualisierten Versionen der Legendenfunktionszeiger speichern und zusätzliche Flags für Legendentreiber zum Festlegen verfügbar sind.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Verfügbar ab Windows 8.
Kopfzeile fwpsk.h (include fwpsk.h)

Weitere Informationen

FWPS_CALLOUT0

FWPS_CALLOUT1

FwpsCalloutRegister2

Verwenden der Schicht 2-Filterung

klassifizierenFn2

flowDeleteFn

notifyFn2