Change Notifications

The Base Filtering Engine (BFE) change notifications follow the publish/subscribe pattern: in order to receive one of the published change notifications, an application has to subscribe to it.

The published BFE change notifications are Add and Remove for callouts, filters, providers, provider contexts, and sub-layers.

To subscribe to one of the above notifications, an application calls the corresponding Fwpm*SubscribeChanges0 management function (for example, FwpmCalloutSubscribeChanges0). The callback function passed as an argument to Fwpm*SubscribeChanges0 is invoked by BFE when the change to which it subscribed occurs.

To unsubscribe to one of the above notifications, an application calls the corresponding Fwpm*UnsubscribeChanges0 management function (for example, FwpmCalloutUnsubscribeChanges0).

To see the current subscriptions for one of the above notifications, an application calls the corresponding Fwpm*SubscriptionsGet0 management function (for example FwpmCalloutSubscriptionsGet0).

The change notifications offered by the BFE are:

  • Asynchronous — The function call that triggered a notification may return before the notification has been dispatched to all subscribers.
  • Unreliable — No guarantee is made that notifications will be successfully delivered.

Subscribers do not receive notifications for changes made with the session handle they used to subscribe. Generally, subscribers only need to be informed of the changes made by others; they already know which changes were made by themselves.