FwpsInjectvSwitchEthernetIngressAsync0-Funktion (fwpsk.h)

Mit der Funktion FwpsInjectvSwitchEthernetIngressAsync0 (was FwpsInjectvSwitchIngressAsync0) wird ein zuvor absorbiertes virtuelles Switchpaket (unverändert) wieder in den Eingangsdatenpfad des virtuellen Switches eingefügt, in dem es abgefangen wurde. Diese Funktion kann auch ein Paket einfügen, das mit der Funktion FwpsAllocateNetBufferAndNetBufferList0 erstellt wurde.

HinweisFwpsInjectvSwitchEthernetIngressAsync0 ist eine bestimmte Version von FwpsInjectvSwitchEthernetIngressAsync. Weitere Informationen finden Sie unter WFP-Version-Independent Namen und Spezifische Windows-Versionen .
 

Syntax

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
);

Parameter

[in] injectionHandle

Ein Einschleusungshandle, das zuvor durch einen Aufruf der FwpsInjectionHandleCreate0-Funktion erstellt wurde, wobei der Flags-Parameter auf FWPS_INJECTION_TYPE_L2 festgelegt ist.

Der parameter addressFamily wird nicht verwendet und sollte auf AF_UNSPEC festgelegt werden.

[in, optional] injectionContext

Ein optionales Handle für den Einschleusungskontext, der mit der Funktion FwpsQueryPacketInjectionState0 abgerufen werden kann.

[in] flags

Reserviert. Muss auf 0 (null) festgelegt werden.

[in, optional] reserved

Reserviert. Muss auf NULL festgelegt werden.

[in] vSwitchId

Der bezeichner des virtuellen Switches, den die Filter-Engine in der FWPS_INCOMING_VALUES0-Struktur an die Legendenfunktion klassifizierenFn des Callout-Treibers übergeben hat. Dies ist die GUID des virtuellen Switches, der in einem xxx_VSWITCH_ID Feld bereitgestellt wird.

[in] vSwitchSourcePortId

Der Quellportbezeichner des virtuellen Switches.

[in] vSwitchSourceNicIndex

Der Quell-NIC-Index des virtuellen Switches.

netBufferLists

Eine Kette von NET_BUFFER_LIST Strukturen, die in den ausgehenden Datenpfad des virtuellen Switches eingefügt werden sollen.

[in] completionFn

Ein Zeiger auf eine beschriftungsfunktion completionFn , die vom Legendentreiber bereitgestellt wird. Die Filter-Engine ruft diese Funktion auf, nachdem die Paketdaten mit dem netBufferLists-Parameter in den ausgehenden Datenpfad des virtuellen Switches eingefügt wurden. Die completionFn-Funktion wird einmal für jede NET_BUFFER_LIST in der Kette aufgerufen. completionFn muss angegeben werden, wenn geklonte oder erstellte NET_BUFFER_LIST Strukturen eingefügt werden. Dieser Parameter kann NULL sein, wenn ursprüngliche unveränderte NET_BUFFER_LIST Strukturen eingefügt werden, die von der Filter-Engine empfangen wurden.

[in, optional] completionContext

Ein Zeiger auf einen vom Legendentreiber bereitgestellten Kontext, der an die Legendenfunktion übergeben wird, auf die der completionFn-Parameter verweist. Dieser Parameter ist optional und kann NULL sein.

Rückgabewert

Die FwpsInjectvSwitchEthernetIngressAsync0-Funktion gibt einen der folgenden NTSTATUS-Codes zurück.

Rückgabecode Beschreibung
STATUS_SUCCESS
Der virtuelle Switch NET_BUFFER_LIST Kette wurde erfolgreich eingefügt.
Andere status Codes
Ein Fehler ist aufgetreten.

Hinweise

Wenn eine Legende Pakete mit FwpsInjectvSwitchEthernetIngressAsync0 einschleust, können die eingefügten Pakete erneut klassifiziert werden, wenn die Pakete mit demselben Filter übereinstimmen, wie sie ursprünglich klassifiziert wurden. Daher müssen Legenden virtueller Switches wie Beschriftungen auf IP-Ebenen die FwpsQueryPacketInjectionState0-Funktion aufrufen, um sich vor unendlichen Paketüberprüfungen zu schützen.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Verfügbar ab Windows 8.
Zielplattform Universell
Header fwpsk.h (include Fwpsk.h)
Bibliothek Fwpkclnt.lib
IRQL <= DISPATCH_LEVEL

Weitere Informationen

FWPS_INCOMING_VALUES0

FwpsAllocateNetBufferAndNetBufferList0

FwpsInjectionHandleCreate0

FwpsQueryPacketInjectionState0

NET_BUFFER_LIST

completionFn