FWPM_CALLOUT0 structure

The FWPM_CALLOUT0 structure defines the data that is required for a callout driver to add a callout to the filter engine.

Note FWPM_CALLOUT0 is a specific version of FWPM_CALLOUT. See WFP Version-Independent Names and Targeting Specific Versions of Windows for more information.


typedef struct FWPM_CALLOUT0_ {
  GUID               calloutKey;
  FWPM_DISPLAY_DATA0 displayData;
  UINT32             flags;
  GUID               *providerKey;
  FWP_BYTE_BLOB      providerData;
  GUID               applicableLayer;
  UINT32             calloutId;


  • calloutKey
    A GUID that uniquely identifies the callout. This must be the same value as the GUID that is specified for the calloutKey member of the FWPS_CALLOUT0 structure when the callout driver registers the callout with the filter engine.

  • displayData
    An FWPM_DISPLAY_DATA0 structure that specifies a name and description for the callout.

  • flags
    Flags that specify callout-specific parameters. Possible flags are:

      This flag indicates that the callout is to be persistent across system reboots. A persistent callout can be referenced by boot-time and persistent filters.

      This flag indicates that an existing callout is registered. For more information on registering callouts, see FwpsCalloutRegister0. Do not set this flag when adding new callouts.

      This flag indicates that the callout uses the provider context from the corresponding FWPS_FILTER0 filter structure.

  • providerKey
    A pointer to a GUID that identifies the provider with which the callout that is being added to the filter engine is associated. If the callout is not associated with a particular provider, a callout driver should set this member to NULL. For more information about providers, see the Windows Filtering Platform section in the Microsoft Windows SDK documentation.

  • providerData
    A FWP_BYTE_BLOB structure that describes any provider-specific data that is associated with the callout. If the callout is not associated with a particular provider or if the provider does not associate any provider-specific data with callouts, a callout driver should set the Size member of this structure to zero and the Data member of this structure to NULL.

  • applicableLayer
    The management identifier for the filtering layer at which the callout is applicable. For more information, see Management Filtering Layer Identifiers.

  • calloutId
    This member is not used when a callout driver uses the FWPM_CALLOUT0 structure to add a callout to the filter engine.

    If a callout driver retrieves an FWPM_CALLOUT0 structure from the filter engine, this member contains the run-time identifier for the callout.


A callout driver passes a pointer to an initialized FWPM_CALLOUT0 structure to the FwpmCalloutAdd0 function when adding a callout to the filter engine.

Callout drivers do not typically add their callouts to the filter engine. In most situations this is handled by a user-mode Windows Filtering Platform management application.



Available starting with Windows Vista.


Fwpmtypes.h (include Fwpmk.h)

See also







Send comments about this topic to Microsoft