Поделиться через


Уведомления об изменениях

Уведомления об изменениях базового механизма фильтрации (BFE) следуют шаблону публикации и подписки: чтобы получить одно из опубликованных уведомлений об изменениях, приложение должен подписаться на него.

Опубликованные уведомления об изменениях BFE: Добавление и удаление для выносок, фильтров, поставщиков, контекстов поставщиков и вложенных слоев.

Чтобы подписаться на одно из указанных выше уведомлений, приложение вызывает соответствующую функцию управления Fwpm*SubscribeChanges0 (например, FwpmCalloutSubscribeChanges0). Функция обратного вызова, передаваемая в качестве аргумента в Fwpm*SubscribeChanges0 , вызывается BFE при изменении, на которое она подписана.

Чтобы отменить подписку на одно из указанных выше уведомлений, приложение вызывает соответствующую функцию управления Fwpm*UnsubscribeChanges0 (например, FwpmCalloutUnsubscribeChanges0).

Чтобы просмотреть текущие подписки для одного из указанных выше уведомлений, приложение вызывает соответствующую функцию управления Fwpm*SubscriptionsGet0 (например , FwpmCalloutSubscriptionsGet0).

Уведомления об изменениях, предлагаемые BFE:

  • Асинхронный — вызов функции, активировав уведомление, может вернуться до отправки уведомления всем подписчикам.
  • Ненадежный — не гарантируется, что уведомления будут успешно доставлены.

Подписчики не получают уведомления об изменениях, внесенных с помощью дескриптора сеанса, который они использовали для подписки. Как правило, подписчики должны быть проинформированы только об изменениях, внесенных другими; они уже знают, какие изменения были внесены сами.