Функция FwpsInjectvSwitchEthernetIngressAsync0 (fwpsk.h)
Функция FwpsInjectvSwitchEthernetIngressAsync0 ( fwpsInjectvSwitchIngressAsync0) повторно выполняет повторное переключение ранее поглощенного пакета виртуального коммутатора (без изменений) обратно в путь данных входящего трафика виртуального коммутатора, где он был перехвачен. Эта функция также может внедрять пакет, созданный с помощью функции FwpsAllocateNetBufferAndNetBufferList0 .
Синтаксис
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 .
Код возврата | Описание |
---|---|
|
Цепочка NET_BUFFER_LIST виртуального коммутатора успешно внедрена. |
|
Произошла ошибка. |
Комментарии
Когда выноска внедряет пакеты с FwpsInjectvSwitchEthernetIngressAsync0, внедренные пакеты можно классифицировать снова, если пакеты соответствуют тому же фильтру, что и изначально классифицированные. Таким образом, как и выноски на уровнях IP, виртуальные коммутаторы должны вызывать функцию FwpsQueryPacketInjectionState0 для защиты от бесконечных проверок пакетов.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Доступно начиная с Windows 8. |
Целевая платформа | Универсальное |
Верхняя часть | fwpsk.h (включая Fwpsk.h) |
Библиотека | Fwpkclnt.lib |
IRQL | <= DISPATCH_LEVEL |
См. также раздел
FwpsAllocateNetBufferAndNetBufferList0