FWPM_PROVIDER_CONTEXT0 structure (fwpmtypes.h)

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

Syntax

typedef struct FWPM_PROVIDER_CONTEXT0_ {
  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_POLICY0 *ikeQmTransportPolicy;
    IPSEC_TUNNEL_POLICY0    *ikeQmTunnelPolicy;
    IPSEC_TRANSPORT_POLICY0 *authipQmTransportPolicy;
    IPSEC_TUNNEL_POLICY0    *authipQmTunnelPolicy;
    IKEEXT_POLICY0          *ikeMmPolicy;
    IKEEXT_POLICY0          *authIpMmPolicy;
    FWP_BYTE_BLOB           *dataBuffer;
    FWPM_CLASSIFY_OPTIONS0  *classifyOptions;
  };
  UINT64                     providerContextId;
} FWPM_PROVIDER_CONTEXT0;

Members

providerContextKey

Uniquely identifies the provider context. If the GUID is zero-initialized in the call to FwpmProviderContextAdd0, 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_POLICY0 for more information.

ikeQmTunnelPolicy

Available when type is FWPM_IPSEC_IKE_QM_TUNNEL_CONTEXT.

See IPSEC_TUNNEL_POLICY0 for more information.

authipQmTransportPolicy

Available when type is FWPM_IPSEC_AUTHIP_QM_TRANSPORT_CONTEXT.

See IPSEC_TRANSPORT_POLICY0 for more information.

authipQmTunnelPolicy

Available when type is FWPM_IPSEC_AUTHIP_QM_TUNNEL_CONTEXT.

See IPSEC_TUNNEL_POLICY0 for more information.

ikeMmPolicy

Available when type is FWPM_IPSEC_IKE_MM_CONTEXT.

See IKEEXT_POLICY0 for more information.

authIpMmPolicy

Available when type is FWPM_IPSEC_AUTHIP_MM_CONTEXT.

See IKEEXT_POLICY0 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.

providerContextId

LUID identifying the context. This is the context value stored in the FWPS_FILTER0 structure for filters that reference a provider context. The FWPS_FILTER0 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 Vista [desktop apps only]
Minimum supported server Windows Server 2008 [desktop apps only]
Header fwpmtypes.h

See also

Windows Filtering Platform API Structures