FWPM_PROVIDER_CONTEXT1 structure (fwpmtypes.h)

The FWPM_PROVIDER_CONTEXT1 structure stores the state associated with a provider context. FWPM_PROVIDER_CONTEXT2 is available. For Windows Vista, FWPM_PROVIDER_CONTEXT0 is available.

Syntax

typedef struct FWPM_PROVIDER_CONTEXT1_ {
  GUID                       providerContextKey;
  FWPM_DISPLAY_DATA0         displayData;
  UINT32                     flags;
  GUID                       *providerKey;
  FWP_BYTE_BLOB              providerData;
  FWPM_PROVIDER_CONTEXT_TYPE type;
  union {
    IPSEC_KEYING_POLICY0    *keyingPolicy;
    IPSEC_TRANSPORT_POLICY1 *ikeQmTransportPolicy;
    IPSEC_TUNNEL_POLICY1    *ikeQmTunnelPolicy;
    IPSEC_TRANSPORT_POLICY1 *authipQmTransportPolicy;
    IPSEC_TUNNEL_POLICY1    *authipQmTunnelPolicy;
    IKEEXT_POLICY1          *ikeMmPolicy;
    IKEEXT_POLICY1          *authIpMmPolicy;
    FWP_BYTE_BLOB           *dataBuffer;
    FWPM_CLASSIFY_OPTIONS0  *classifyOptions;
    IPSEC_TUNNEL_POLICY1    *ikeV2QmTunnelPolicy;
    IKEEXT_POLICY1          *ikeV2MmPolicy;
    IPSEC_DOSP_OPTIONS0     *idpOptions;
  };
  UINT64                     providerContextId;
} FWPM_PROVIDER_CONTEXT1;

Members

providerContextKey

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

displayData

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

flags

Possible values:

Provider context flag Meaning
FWPM_PROVIDER_CONTEXT_FLAG_PERSISTENT The object is persistent, that is, it survives across BFE stop/start.

providerKey

GUID of the policy provider that manages this object.

providerData

An FWP_BYTE_BLOB structure that contains optional provider-specific data that allows providers to store additional context info with the object.

type

A FWPM_PROVIDER_CONTEXT_TYPE value specifying the type of provider context..

keyingPolicy

Available when type is FWPM_IPSEC_KEYING_CONTEXT.

See IPSEC_KEYING_POLICY0 for more information.

ikeQmTransportPolicy

Available when type is FWPM_IPSEC_IKE_QM_TRANSPORT_CONTEXT.

See IPSEC_TRANSPORT_POLICY1 for more information.

ikeQmTunnelPolicy

Available when type is FWPM_IPSEC_IKE_QM_TUNNEL_CONTEXT.

See IPSEC_TUNNEL_POLICY1 for more information.

authipQmTransportPolicy

Available when type is FWPM_IPSEC_AUTHIP_QM_TRANSPORT_CONTEXT.

See IPSEC_TRANSPORT_POLICY1 for more information.

authipQmTunnelPolicy

Available when type is FWPM_IPSEC_AUTHIP_QM_TUNNEL_CONTEXT.

See IPSEC_TUNNEL_POLICY1 for more information.

ikeMmPolicy

Available when type is FWPM_IPSEC_IKE_MM_CONTEXT.

See IKEEXT_POLICY1 for more information.

authIpMmPolicy

Available when type is FWPM_IPSEC_AUTHIP_MM_CONTEXT.

See IKEEXT_POLICY1 for more information.

dataBuffer

Available when type is FWPM_GENERAL_CONTEXT.

See FWP_BYTE_BLOB for more information.

classifyOptions

Available when type is FWPM_CLASSIFY_OPTIONS_CONTEXT.

See FWPM_CLASSIFY_OPTIONS0 for more information.

ikeV2QmTunnelPolicy

Available when type is FWPM_IPSEC_IKEV2_QM_TUNNEL_CONTEXT.

See IPSEC_TUNNEL_POLICY1 for more information.

ikeV2MmPolicy

Available when type is FWPM_IPSEC_IKEV2_MM_CONTEXT.

See IKEEXT_POLICY1 for more information.

idpOptions

Available when type is FWPM_IPSEC_DOSP_CONTEXT.

See IPSEC_DOSP_OPTIONS0 for more information.

providerContextId

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.

Remarks

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

The last element is additional information returned when getting/enumerating objects.

Requirements

Requirement Value
Minimum supported client Windows 7 [desktop apps only]
Minimum supported server Windows Server 2008 R2 [desktop apps only]
Header fwpmtypes.h

See also

FWPM_DISPLAY_DATA0

FWPM_PROVIDER_CONTEXT_TYPE

FWP_BYTE_BLOB

FwpmProviderContextAdd1

IKEEXT_POLICY1

IPSEC_DOSP_OPTIONS0

IPSEC_KEYING_POLICY0

IPSEC_TRANSPORT_POLICY1

IPSEC_TUNNEL_POLICY1

Windows Filtering Platform API Structures