Freigeben über


WFP-API

Die WFP-API (Windows-Filterplattform) ist in die folgenden Komponenten unterteilt.

Bestandteil Beschreibung Headerdateien
Callout-API (FWPS)${REMOVE}$
Datentypen, die von Legenden verwendet werden.Hinweis Diese Datentypen werden im Microsoft Windows Driver Development Kit (DDK) dokumentiert.
fwpstypes.h
fwpstypes.idl
Funktionen und aufgezählten Typen zum Implementieren von Legenden verwendet werden.Hinweis Diese Funktionen und Enumerationstypen werden im DDK dokumentiert.
fwpsu.h
fwpsk.h
IKE/AuthIP-API (IKEEXT)${REMOVE}$
aufgezählten Typen und Strukturen für die Verwaltung von IKE- und AuthIP-Hauptmodusrichtlinien und Sicherheitszuordnungen verwendet werden.
iketypes.h
iketypes.idl
Funktionen zum Verwalten von IKE- und AuthIP MM-Richtlinien und Sicherheitszuordnungen verwendet.
fwpmu.h
fwpmk.h
IPsec-API (IPSEC)${REMOVE}$
aufgezählten Typen und Strukturen für die Verwaltung von IPsec-Richtlinien und Sicherheitszuordnungen verwendet werden.
ipsectypes.h
ipsectypes.idl
Funktionen zum Verwalten von IPsec-Richtlinien und Sicherheitszuordnungen verwendet.
fwpmu.h
fwpmk.h
Verwaltungs-API (FWPM)${REMOVE}$
Aufzählungstypen und Strukturen für die Verwaltung des Filtermoduls verwendet werden.
fwpmtypes.h
fwpmtypes.idl
Funktionen zum Verwalten des Filtermoduls verwendet. Diese Funktionen werden verwendet, um die folgenden Aufgaben auszuführen:
  • Festlegen und Abfragen von Filtern, Anbietern und Legenden.
  • Abrufen von IPsec-Statistiken.
  • Konfigurieren Sie die Windows-Filterplattform.
fwpmu.h
fwpmk.h
Freigegebene API (FWP) Grundlegende aufgezählten Typen und Strukturen für die Windows-Filterplattform freigegeben.
fwptypes.h
fwptypes.idl

Datentypnamen sind groß- und unterstrichtrennt. Der Name beginnt immer mit einem Präfix, das seine Komponentengruppe identifiziert, z. B. FWPM_PROVIDER0.

Funktionsnamen sind gemischt und mit Groß-/Kleinschreibung getrennt. Der Name beginnt immer mit einem Präfix, das seine Komponentengruppe identifiziert, z. B. FwpmProviderContextAdd0.

Die meisten Daten- und Funktionsnamen enden mit einer Versionsnummer. Die Fwpvi.h-Headerdatei ordnet versionsunabhängige Daten und Funktionsnamen der Version zu, die für die Verwendung mit einem bestimmten Betriebssystem geeignet ist. Weitere Informationen finden Sie unter WFP-Version-Independent Namen und zielspezifische Versionen von Windows.

Jede Komponente steht nicht allein. Beispielsweise werden IKE-Hauptmodusrichtlinien (MM) in der IKEEXT-Komponente definiert, aber in einem Anbieterkontext gespeichert und einem Filter zugeordnet, der beide in der FWPM-API-Komponente gefunden werden.

User-Mode- und Kernel-Mode öffentliche Headerdateien

Die meisten WFP-Funktionen können entweder über den Benutzermodus oder den Kernelmodus aufgerufen werden. Benutzermodusfunktionen geben jedoch einen DWORD--Wert zurück, der einen Win32-Fehlercode darstellt, während Kernelmodusfunktionen einen NTSTATUS- Wert zurückgeben, der einen NT-Statuscode darstellt. Daher sind Funktionsnamen und Semantik zwischen Benutzermodus und Kernelmodus identisch, funktionssignaturen sind jedoch nicht. Dies erfordert separate Benutzermodus- und Kernelmodusspezifische Header für die Funktionsprototypen. Benutzermodus-Headerdateinamen enden in "u" und Kernelmodus-Headerdateinamen enden in "k".

In der folgenden Tabelle sind die Win32-Headerdateien aufgeführt, die die WFP-Funktionen definieren.

Headerdateien Beschreibung
fwpmk.h Kernelmodus-Funktionsprototypen für FWPM-, IPsec- und IKEEXT-Komponenten. Nur im DDK verfügbar.
fwpmu.h Prototypen für Benutzermodusfunktionen für FWPM-, IPsec- und IKEEXT-Komponenten. Nur im Microsoft Windows Software Development Kit (SDK) verfügbar.
fwpsk.h Kernelmodus-Funktionsprototypen und Enumerationstypen für DIE FWPS-Komponente. Nur im DDK verfügbar.
fwpsu.h Prototypen und Aufzählungstypen für FWPS-Komponenten im Benutzermodus. Nur im Windows SDK verfügbar.Hinweis Die aufgezählten Typen des Benutzermodus FWPS sind identisch mit den aufgezählten Typen des Kernelmodus FWPS. Daher werden diese Typen nur im DDK dokumentiert.
Hinweis Die FWPS-Funktionsprototypen im Benutzermodus sind identisch mit den Kernelmodus-FWPS-Funktionsprototypen mit Ausnahme des Rückgabecodes. FWPS-Funktionen im Benutzermodus geben eine DWORD-zurück, während FWPS-Funktionen im Kernelmodus eine NTSTATUS-zurückgeben. Daher werden diese Funktionen nur im DDK dokumentiert.

Alle Benutzermodusfunktionen werden aus fwpuclnt.dllexportiert. Alle Kernelmodusfunktionen werden aus fwpkclnt.sysexportiert.

Datentypen für Verwaltung (FWPM) und Legenden (FWPS)

Die meisten FWPM-Datentypen, die für Verwaltungsaufgaben verwendet werden, z. B. das Hinzufügen von Filtern oder Legenden aus einer Anwendung oder eines Treibers, weisen FWPS-Entsprechungen auf. Die FWPS-Datentypen werden während der tatsächlichen Filterung des Netzwerkdatenverkehrs im Kontext einer Popuproutine für die Klassifizierung verwendet.

Um beispielsweise einen Filter zu einer bestimmten Filtermodulebene hinzuzufügen, sollte der Programmierer einen FWPM-Typ verwenden, z. B.: filter.layerKey = FWPM_LAYER_INBOUND_IPPACKET. Um zu überprüfen, aus welcher Ebene eine Legende aufgerufen wird, sollte der Programmierer den entsprechenden FWPS-Typ verwenden: if (inFixedValues->layerId == FWPS_LAYER_INBOUND_IPPACKET).

Einige FWPS-Entsprechungen zu FWPM-Datentypen erweitern die ursprünglichen FWPM-Datentypen. Um beispielsweise eine Filterbedingung auf vielen Filtermodulebenen hinzuzufügen, gibt der Programmierer die filterCondition.fieldKey = FWPM_CONDITION_IP_PROTOCOL unabhängig von der Filtermodulebene an. Um einen Filterbedingungswert zu finden, gibt der Programmierer einen layerspezifischen FWPS-Typ an, z. B.: inFixedValues->incomingValue[FWPS_FIELD_ALE_FLOW_ESTABLISHED_V4_IP_PROTOCOL].

Die FWPS-Datentypen sind im Allgemeinen kleiner als ihre FWPM-Entsprechungen. Beispielsweise sind die FWPM-FilterschichtbezeichnerGUID-(16 Byte), während die FWPS-FilterschichtbezeichnerUINT16- (16-Bit) sind. Die kleinere Größe für FWPS-Datentypen verbessert die Systemleistung, da ganzzahlige Vergleiche GUID- Vergleiche für Echtzeitdatenverkehr überwiegen. Außerdem wird der Kernelspeicher effizient verwendet, da die FWPS-Typen alle im Kernel zum Verwalten der Filter verwendet werden, während die FWPM-Typen im Benutzermodus gespeichert werden, um die verschiedenen Ebenen zu verwalten.

WFP-API-Objektmodell

WFP-API-Objektverwaltung