FWPM_PROVIDER_CONTEXT2 structure (fwpmtypes.h)

The FWPM_PROVIDER_CONTEXT2 structure stores the state associated with a provider context. FWPM_PROVIDER_CONTEXT0 is available.

Syntax

typedef struct FWPM_PROVIDER_CONTEXT2_ {
  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_POLICY2    *ikeQmTunnelPolicy;
    IPSEC_TRANSPORT_POLICY2 *authipQmTransportPolicy;
    IPSEC_TUNNEL_POLICY2    *authipQmTunnelPolicy;
    IKEEXT_POLICY2          *ikeMmPolicy;
    IKEEXT_POLICY2          *authIpMmPolicy;
    FWP_BYTE_BLOB           *dataBuffer;
    FWPM_CLASSIFY_OPTIONS0  *classifyOptions;
    IPSEC_TUNNEL_POLICY2    *ikeV2QmTunnelPolicy;
    IPSEC_TRANSPORT_POLICY2 *ikeV2QmTransportPolicy;
    IKEEXT_POLICY2          *ikeV2MmPolicy;
    IPSEC_DOSP_OPTIONS0     *idpOptions;
  };
  UINT64                     providerContextId;
} FWPM_PROVIDER_CONTEXT2;

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.

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.

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 8 [desktop apps only]
Minimum supported server Windows Server 2012 [desktop apps only]
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