Функция 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
Дескриптор внедрения, созданный ранее вызовом функции FwpsInjectionHandleCreate 0 с флагами параметром FWPS_INJECTION_TYPE_L2.
Параметр addressFamily не используется и должен иметь значение AF_UNSPEC.
[in, optional] injectionContext
Необязательный дескриптор контекста внедрения, который можно получить с помощью функции FwpsQueryPacketInjectionState0.
[in] flags
Скрытный. Должно быть задано равно нулю.
[in, optional] reserved
Скрытный. Необходимо задать значение NULL.
[in] vSwitchId
Идентификатор виртуального коммутатора, передаваемый модулем фильтрации в структуре FWPS_INCOMING_VALUES0драйвера выноски, классифицирует функцию выноски. Это GUID виртуального коммутатора, предоставленного в поле xxx_VSWITCH_ID.
[in] vSwitchSourcePortId
Идентификатор исходного порта виртуального коммутатора.
[in] vSwitchSourceNicIndex
Индекс исходного сетевого адаптера виртуального коммутатора.
netBufferLists
Цепочка NET_BUFFER_LIST структур, которые необходимо внедрить в путь к данным виртуального коммутатора.
[in] completionFn
Указатель на функцию выноски завершенияFn, предоставляемую драйвером выноски. Модуль фильтров вызывает эту функцию после передачи данных пакета в параметре netBufferLists, был внедрен в путь к данным исходящего трафика виртуального коммутатора. Функция завершенияFn будет вызываться один раз для каждого NET_BUFFER_LIST в цепочке. завершения необходимо указать при внедрении клонированных или созданных структур NET_BUFFER_LIST. Этот параметр может иметь значение NULL при внедрении исходных неуправляемых NET_BUFFER_LIST структур, полученных от обработчика фильтров.
[in, optional] completionContext
Указатель на драйвер выноски, предоставленный контекстом, передаваемым в функцию выноски, на которую указывает параметр завершенияFn. Этот параметр является необязательным и может быть null.
Возвращаемое значение
Функция FwpsInjectvSwitchEthernetIngressAsync 0 возвращает один из следующих кодов NTSTATUS.
Возвращаемый код | Описание |
---|---|
|
Виртуальная цепочка NET_BUFFER_LIST успешно внедрена. |
|
Произошла ошибка. |
Замечания
Когда выноска внедряет пакеты с FwpsInjectvSwitchEthernetIngressAsync0, внедренные пакеты можно классифицировать снова, если пакеты соответствуют тому же фильтру, что и они были первоначально классифицированы. Таким образом, как выноски на уровне IP, выноски виртуального коммутатора должны вызывать функцию FwpsQueryPacketInjectionState0 для защиты от бесконечных проверок пакетов.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Доступно начиная с Windows 8. |
целевая платформа | Всеобщий |
заголовка | fwpsk.h (include Fwpsk.h) |
библиотеки | Fwpkclnt.lib |
IRQL | <= DISPATCH_LEVEL |
См. также
FwpsAllocateNetBufferAndNetBufferList0