FWPM_PROVIDER_CONTEXT3 structure (fwpmtypes.h)

Stores the state associated with a provider context. FWPM_PROVIDER_CONTEXT0, FWPM_PROVIDER_CONTEXT1, and FWPM_PROVIDER_CONTEXT2 are available.

Syntax

typedef struct FWPM_PROVIDER_CONTEXT3_ {
  GUID                       providerContextKey;
  FWPM_DISPLAY_DATA0         displayData;
  UINT32                     flags;
  GUID                       *providerKey;
  FWP_BYTE_BLOB              providerData;
  FWPM_PROVIDER_CONTEXT_TYPE type;
  union {
    IPSEC_KEYING_POLICY1                     *keyingPolicy;
    IPSEC_TRANSPORT_POLICY2                  *ikeQmTransportPolicy;
    IPSEC_TUNNEL_POLICY3                     *ikeQmTunnelPolicy;
    IPSEC_TRANSPORT_POLICY2                  *authipQmTransportPolicy;
    IPSEC_TUNNEL_POLICY3                     *authipQmTunnelPolicy;
    IKEEXT_POLICY2                           *ikeMmPolicy;
    IKEEXT_POLICY2                           *authIpMmPolicy;
    FWP_BYTE_BLOB                            *dataBuffer;
    FWPM_CLASSIFY_OPTIONS0                   *classifyOptions;
    IPSEC_TUNNEL_POLICY3                     *ikeV2QmTunnelPolicy;
    IPSEC_TRANSPORT_POLICY2                  *ikeV2QmTransportPolicy;
    IKEEXT_POLICY2                           *ikeV2MmPolicy;
    IPSEC_DOSP_OPTIONS0                      *idpOptions;
    FWPM_NETWORK_CONNECTION_POLICY_SETTINGS0 *networkConnectionPolicy;
  };
  UINT64                     providerContextId;
} FWPM_PROVIDER_CONTEXT3;

Members

providerContextKey

Type: GUID

Uniquely identifies the provider context. If the GUID is zero-initialized in the call to FwpmProviderContextAdd2, then Base Filtering Engine (BFE) will generate one.

displayData

Type: FWPM_DISPLAY_DATA0

Allows provider contexts to be annotated in a human-readable form. The FWPM_DISPLAY_DATA0 structure is required.

flags

Type: UINT32

Possible values:

Provider context flag Meaning
FWPM_PROVIDER_CONTEXT_FLAG_PERSISTENT The object is persistent, that is, it survives across BFE stop/start.
FWPM_PROVIDER_CONTEXT_FLAG_DOWNLEVEL Reserved for internal use.

providerKey

Type: GUID*

GUID of the policy provider that manages this object.

providerData

Type: FWP_BYTE_BLOB

Optional provider-specific data that allows providers to store additional context info with the object.

type

Type: FWPM_PROVIDER_CONTEXT_TYPE

The type of provider context.

keyingPolicy

Type: IPSEC_KEYING_POLICY1*

Available when type is FWPM_IPSEC_KEYING_CONTEXT.

ikeQmTransportPolicy

Type: IPSEC_TRANSPORT_POLICY2*

Available when type is FWPM_IPSEC_IKE_QM_TRANSPORT_CONTEXT.

ikeQmTunnelPolicy

Type: IPSEC_TUNNEL_POLICY2*

Available when type is FWPM_IPSEC_IKE_QM_TUNNEL_CONTEXT.

authipQmTransportPolicy

Type: IPSEC_TRANSPORT_POLICY2*

[case()][unique]

authipQmTunnelPolicy

Type: IPSEC_TUNNEL_POLICY2*

Available when type is FWPM_IPSEC_AUTHIP_QM_TRANSPORT_CONTEXT.

ikeMmPolicy

Type: IKEEXT_POLICY2*

Available when type is FWPM_IPSEC_IKE_MM_CONTEXT.

authIpMmPolicy

Type: IKEEXT_POLICY2*

Available when type is FWPM_IPSEC_AUTHIP_MM_CONTEXT.

dataBuffer

Type: FWP_BYTE_BLOB*

Available when type is FWPM_GENERAL_CONTEXT.

classifyOptions

Type: FWPM_CLASSIFY_OPTIONS0*

Available when type is FWPM_CLASSIFY_OPTIONS_CONTEXT.

ikeV2QmTunnelPolicy

Type: IPSEC_TUNNEL_POLICY2*

Available when type is FWPM_IPSEC_IKEV2_QM_TUNNEL_CONTEXT.

ikeV2QmTransportPolicy

Type: IPSEC_TRANSPORT_POLICY2*

Available when type is FWPM_IPSEC_IKEV2_QM_TRANSPORT_CONTEXT.

ikeV2MmPolicy

Type: IKEEXT_POLICY2*

Available when type is FWPM_IPSEC_IKEV2_MM_CONTEXT.

idpOptions

Type: IPSEC_DOSP_OPTIONS0*

Available when type is FWPM_IPSEC_DOSP_CONTEXT.

networkConnectionPolicy

A pointer to a FWPM_NETWORK_CONNECTION_POLICY_SETTINGS0 structure containing the number of network connection polices, and a list of those policies formatted.

providerContextId

Type: UINT64

LUID identifying the context. This is the context value stored in the FWPS_FILTER1 structure for filters that reference a provider context. The FWPS_FILTER1 structure is documented in the WDK. This is additional information returned when getting/enumerating objects.

Remarks

The first seven elements of the union are information supplied when adding objects.

Requirements

Requirement Value
Header fwpmtypes.h

See also

FWPM_DISPLAY_DATA0

FWPM_PROVIDER_CONTEXT_TYPE

FWP_BYTE_BLOB

FwpmProviderContextAdd2

IKEEXT_POLICY2

IPSEC_DOSP_OPTIONS0

IPSEC_KEYING_POLICY0

IPSEC_TRANSPORT_POLICY2

IPSEC_TUNNEL_POLICY2

Windows Filtering Platform API Structures