функция обратного вызова FWPS_VSWITCH_FILTER_ENGINE_REORDER_CALLBACK0 (fwpsk.h)

Модуль фильтрации вызывает функцию выноски vSwitchFilterEngineReorderNotifyRn (FWPS_VSWITCH_FILTER_ENGINE_REORDER_CALLBACK0), чтобы уведомить драйвер выноски о событиях, связанных с переупорядочением подсистемы фильтров виртуального коммутатора.

ПримечаниеFWPS_VSWITCH_FILTER_ENGINE_REORDER_CALLBACK0 — это определенная версия FWPS_VSWITCH_FILTER_ENGINE_REORDER_CALLBACK. Дополнительные сведения см. в разделах Имена Version-Independent и Выбор конкретных версий Windows .

Синтаксис

FWPS_VSWITCH_FILTER_ENGINE_REORDER_CALLBACK0 FwpsVswitchFilterEngineReorderCallback0;

NTSTATUS FwpsVswitchFilterEngineReorderCallback0(
  [in, optional] void *notifyContext,
  [in]           void *completionContext,
  [in]           BOOLEAN isInRequiredPosition,
  [in]           const NDIS_ENUM_FILTERS *vSwitchExtensionLwfList
)
{...}

Параметры

[in, optional] notifyContext

Указатель на контекст, предоставляемый драйвером выноски. Драйвер передал этот указатель на параметр notifyContext функции FwpsvSwitchEventsSubscribe0 . Этот параметр является необязательным и может иметь значение NULL.

[in] completionContext

Указатель на контекст завершения, предоставляемый драйвером выноски. Этот параметр является необязательным и может иметь значение NULL.

[in] isInRequiredPosition

Значение BOOLEAN, которое имеет значение TRUE, если фильтр находится в требуемой позиции в стеке фильтров, или FALSE, если это не так.

[in] vSwitchExtensionLwfList

Структура NDIS_ENUM_FILTERS , указывающая список драйверов фильтров NDIS расширения виртуального коммутатора.

Возвращаемое значение

Выноска

FWPS_VSWITCH_FILTER_ENGINE_REORDER_CALLBACK0 функция возвращает один из следующих кодов NTSTATUS.

Код возврата Описание
STATUS_SUCCESS
Драйвер выноски принимает уведомление от подсистемы фильтров.
Другие коды состояния
Произошла ошибка.

Комментарии

Драйвер выноски регистрирует

Функция vSwitchFilterEngineReorderNotifyRn путем вызова
функция FwpsvSwitchEventsSubscribe0 .

По умолчанию расширение виртуального коммутатора МПП позиционируется как первое расширение фильтрации при входе виртуального коммутатора. (Таким образом, это также последнее расширение на выходе виртуального коммутатора. Обычно это лучшее положение, так как расширение ПППП может перехватывать пакеты до того, как другие расширения смогут изменять их при входе. Кроме того, расширение МПП может перехватывать пакеты после того, как все изменения пакетов будут выполнены на исходящем трафике.

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

Если обратный вызов vSwitchFilterEngineReorderNotifyRn зарегистрирован, драйвер выноски получает уведомление о переупорядочении виртуального коммутатора. Драйвер выноски получает структуру NDIS_ENUM_FILTERS с упорядоченным списком текущих расширений виртуального коммутатора в параметре vSwitchExtensionLwfList .

Если расширения виртуального коммутатора переупорядочены, расширение МПП приостанавливается (см. раздел FilterPause) и перезапускается (см. раздел FilterRestart). При вызове FILTERRestart в ПППП драйвер фильтра вызывает функцию NdisEnumerateFilterModules , чтобы получить упорядоченный список фильтров расширения виртуального коммутатора. Если расширение МПП не находится в положении по умолчанию, драйвер фильтра уведомляет драйверы выносок.

Драйвер выноски не может возвращать STATUS_PENDING из vSwitchFilterEngineReorderNotifyRn.

Требования

Требование Значение
Минимальная версия клиента Доступно начиная с Windows 8.
Целевая платформа Windows
Header fwpsk.h (включая Fwpsk.h)
IRQL <= DISPATCH_LEVEL

См. также раздел

Функции выноски драйвера выноски

FilterPause

FilterRestart

FwpsvSwitchEventsSubscribe0

FwpsvSwitchNotifyComplete0

NDIS_ENUM_FILTERS

NdisEnumerateFilterModules

NdisFRestartComplete