Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Interfejs API platformy filtrowania systemu Windows (WFP) jest podzielony na następujące składniki.
| Składnik | Opis | Pliki nagłówka |
|---|---|---|
| interfejs API objaśnień (FWPS)${REMOVE}$ |
typy danych używane przez objaśnienie.Uwaga Te typy danych są udokumentowane w zestawie Microsoft Windows Driver Development Kit (DDK). |
fwpstypes.idl |
|
Functions i wyliczane typy używane do implementowania objaśnień.Uwaga Te funkcje i typy wyliczane są udokumentowane w zestawie DDK. |
fwpsk.h |
|
| Interfejs API IKE/AuthIP (IKEEXT)${REMOVE}$ |
Wyliczone typy i struktury używane do zarządzania zasadami i skojarzeniami zabezpieczeń trybu głównego IKE i AuthIP (MM). |
iketypes.idl |
| functions używane do zarządzania zasadami IKE i AuthIP MM i skojarzeniami zabezpieczeń. |
fwpmk.h |
|
| Interfejs API protokołu IPsec (IPSEC)${REMOVE}$ |
Wyliczone typy i struktury używane do zarządzania zasadami IPsec i skojarzeniami zabezpieczeń. |
ipsectypes.idl |
| Functions używane do zarządzania zasadami IPsec i skojarzeniami zabezpieczeń. |
fwpmk.h |
|
| Interfejs API zarządzania (FWPM)${REMOVE}$ |
Wyliczone typy i struktury używane do zarządzania aparatem filtrów. |
fwpmtypes.idl |
Functions używane do zarządzania aparatem filtrów. Te funkcje służą do wykonywania następujących zadań:
|
fwpmk.h |
|
| Udostępniony interfejs API (FWP) | Podstawowe wyliczane typy i struktury współużytkowane na platformie filtrowania systemu Windows. |
fwptypes.idl |
Nazwy typów danych są rozdzielane wielkimi literami i podkreśleniami. Nazwa zawsze zaczyna się od prefiksu identyfikującego jego grupę składników, taką jak FWPM_PROVIDER0.
Nazwy funkcji są rozdzielane literami mieszanymi i literami. Nazwa zawsze zaczyna się od prefiksu identyfikującego jego grupę składników, taką jak FwpmProviderContextAdd0.
Większość nazw danych i funkcji kończy się numerem wersji. Plik nagłówkowy fwpvi.h mapuje nazwy danych niezależnych od wersji i funkcji na wersję, która jest odpowiednia do użycia z danym systemem operacyjnym. Aby uzyskać więcej informacji, zobacz nazwy Version-Independent WFP i określanie określonych wersji systemu Windows.
Każdy składnik nie jest autonomiczny. Na przykład zasady trybu głównego IKE (MM) są definiowane w składniku IKEEXT, ale są przechowywane w kontekście dostawcy i są skojarzone z filtrem, który znajduje się w składniku interfejsu API FWPM.
User-Mode i pliki nagłówków publicznych Kernel-Mode
Większość funkcji WFP może być wywoływana z trybu użytkownika lub trybu jądra. Jednak funkcje trybu użytkownika zwracają wartość DWORD, która reprezentuje kod błędu Win32, podczas gdy funkcje trybu jądra zwracają wartość NTSTATUS, która reprezentuje kod stanu NT. W związku z tym nazwy funkcji i semantyka są identyczne między trybem użytkownika i trybem jądra, ale sygnatury funkcji nie są. Wymaga to oddzielnych nagłówków specyficznych dla trybu użytkownika i trybu jądra dla prototypów funkcji. Nazwy plików nagłówka trybu użytkownika kończą się na "u" i nazwach plików nagłówkowych trybu jądra kończy się na "k".
W poniższej tabeli wymieniono pliki nagłówków Win32 definiujące funkcje WFP.
| Pliki nagłówka | Opis |
|---|---|
| fwpmk.h | Prototypy funkcji trybu jądra dla składników FWPM, IPsec i IKEEXT. Dostępne tylko w zestawie DDK. |
| fwpmu.h | Prototypy funkcji trybu użytkownika dla składników FWPM, IPsec i IKEEXT. Dostępne tylko w zestawie Microsoft Windows Software Development Kit (SDK). |
| fwpsk.h | Prototypy funkcji trybu jądra i wyliczone typy dla składnika FWPS. Dostępne tylko w zestawie DDK. |
| fwpsu.h | Prototypy funkcji trybu użytkownika i wyliczone typy dla składnika FWPS. Dostępne tylko w zestawie Windows SDK.Uwaga Wyliczone typy FWPS trybu użytkownika są identyczne z wyliczonymi typami FWPS trybu jądra. W konsekwencji te typy są udokumentowane tylko w zestawie DDK. Uwaga Prototypy funkcji FWPS trybu użytkownika są identyczne z prototypami funkcji FWPS trybu jądra z wyjątkiem kodu zwrotnego. Funkcje FWPS trybu użytkownika zwracają DWORD, natomiast funkcje FWPS trybu jądra zwracają NTSTATUS. W konsekwencji te funkcje są udokumentowane tylko w zestawie DDK. |
Wszystkie funkcje trybu użytkownika są eksportowane z fwpuclnt.dll. Wszystkie funkcje trybu jądra są eksportowane z fwpkclnt.sys.
Typy danych zarządzania (FWPM) i objaśnień (FWPS)
Większość typów danych FWPM, które są używane do zadań zarządzania, takich jak dodawanie filtrów lub objaśnień z aplikacji lub sterownika, mają odpowiedniki FWPS. Typy danych FWPS są używane podczas rzeczywistego filtrowania ruchu sieciowego w kontekście procedury objaśnienia klasyfikacji.
Aby na przykład dodać filtr do określonej warstwy aparatu filtrowania, programista powinien użyć typu FWPM, takiego jak: filter.layerKey = FWPM_LAYER_INBOUND_IPPACKET. Aby sprawdzić, z której warstwy jest wywoływane objaśnienie, programista powinien użyć odpowiedniego typu FWPS: if (inFixedValues->layerId == FWPS_LAYER_INBOUND_IPPACKET).
Niektóre odpowiedniki FWPS z typami danych FWPM rozszerzają oryginalne typy danych FWPM. Aby na przykład dodać warunek filtru w wielu warstwach aparatu filtrowania, programista określa filterCondition.fieldKey = FWPM_CONDITION_IP_PROTOCOL niezależnie od warstwy aparatu filtrowania. Aby znaleźć wartość warunku filtru, programista określa typ FWPS specyficzny dla warstwy, na przykład: inFixedValues->incomingValue[FWPS_FIELD_ALE_FLOW_ESTABLISHED_V4_IP_PROTOCOL].
Typy danych FWPS są zazwyczaj mniejsze niż ich odpowiedniki FWPM. Na przykład identyfikatory warstw filtrowania FWPM są identyfikatorami GUID(16 bajtów), natomiast identyfikatory warstw filtrowania FWPS FWPS są UINT16 (16-bitowe). Mniejszy rozmiar typów danych FWPS poprawia wydajność systemu, ponieważ porównania liczb całkowitych przewyższają identyfikator GUID porównania ruchu w czasie rzeczywistym. Ponadto pamięć jądra jest używana wydajnie, ponieważ typy FWPS są używane w jądrze do zarządzania filtrami, podczas gdy typy FWPM są przechowywane w trybie użytkownika do zarządzania różnymi warstwami.