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


Функция FwpsInjectvSwitchEthernetIngressAsync0 (fwpsk.h)

Функция FwpsInjectvSwitchEthernetIngressAsync0 ( fwpsInjectvSwitchIngressAsync0) повторно выполняет повторное переключение ранее поглощенного пакета виртуального коммутатора (без изменений) обратно в путь данных входящего трафика виртуального коммутатора, где он был перехвачен. Эта функция также может внедрять пакет, созданный с помощью функции FwpsAllocateNetBufferAndNetBufferList0 .

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

Синтаксис

NTSTATUS FwpsInjectvSwitchEthernetIngressAsync0(
  [in]           HANDLE                injectionHandle,
  [in, optional] HANDLE                injectionContext,
  [in]           UINT32                flags,
  [in, optional] void                  *reserved,
  [in]           const FWP_BYTE_BLOB   *vSwitchId,
  [in]           NDIS_SWITCH_PORT_ID   vSwitchSourcePortId,
  [in]           NDIS_SWITCH_NIC_INDEX vSwitchSourceNicIndex,
                 NET_BUFFER_LIST       *netBufferLists,
  [in]           FWPS_INJECT_COMPLETE  completionFn,
  [in, optional] HANDLE                completionContext
);

Параметры

[in] injectionHandle

Дескриптор внедрения, созданный ранее вызовом функции FwpsInjectionHandleCreate0 с параметром flags , равным FWPS_INJECTION_TYPE_L2.

Параметр addressFamily не используется и должен иметь значение AF_UNSPEC.

[in, optional] injectionContext

Необязательный дескриптор контекста внедрения, который можно получить с помощью функции FwpsQueryPacketInjectionState0 .

[in] flags

Зарезервировано. Необходимо задать нулевое значение.

[in, optional] reserved

Зарезервировано. Для параметра должно быть задано значение NULL.

[in] vSwitchId

Идентификатор виртуального коммутатора, переданный модулем фильтрации в структуре FWPS_INCOMING_VALUES0 функции выноски classifyFn драйвера выноски. Это GUID виртуального коммутатора, который предоставляется в поле xxx_VSWITCH_ID.

[in] vSwitchSourcePortId

Идентификатор исходного порта виртуального коммутатора.

[in] vSwitchSourceNicIndex

Индекс сетевого адаптера источника виртуального коммутатора.

netBufferLists

Цепочка NET_BUFFER_LIST структур для внедрения в путь исходящих данных виртуального коммутатора.

[in] completionFn

Указатель на функцию выноски completionFn , предоставляемую драйвером выноски. Модуль фильтрации вызывает эту функцию после того, как данные пакета в параметре netBufferLists были внедрены в путь исходящих данных виртуального коммутатора. Функция completionFn будет вызываться один раз для каждого NET_BUFFER_LIST в цепочке. При внедрении клонированных или созданных NET_BUFFER_LIST структур необходимо указать completionFn. Этот параметр может иметь значение NULL при внедрении исходных неотмеченных NET_BUFFER_LIST структур, полученных от модуля фильтрации.

[in, optional] completionContext

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

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

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

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

Комментарии

Когда выноска внедряет пакеты с FwpsInjectvSwitchEthernetIngressAsync0, внедренные пакеты можно классифицировать снова, если пакеты соответствуют тому же фильтру, что и изначально классифицированные. Таким образом, как и выноски на уровнях IP, виртуальные коммутаторы должны вызывать функцию FwpsQueryPacketInjectionState0 для защиты от бесконечных проверок пакетов.

Требования

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

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

FWPS_INCOMING_VALUES0

FwpsAllocateNetBufferAndNetBufferList0

FwpsInjectionHandleCreate0

FwpsQueryPacketInjectionState0

NET_BUFFER_LIST

completionFn