Freigeben über


FwpsInjectionHandleCreate0-Funktion (fwpsk.h)

Die FwpsInjectionHandleCreate0-Funktion erstellt ein Handle, das von Paketinjektionsfunktionen zum Einfügen von Paket- oder Streamdaten in den TCP/IP-Netzwerkstapel und von der FwpsQueryPacketInjectionState0-Funktion zum Abfragen des Paketinjektionszustands verwendet werden kann.

HinweisFwpsInjectionHandleCreate0 ist eine bestimmte Version von FwpsInjectionHandleCreate. Weitere Informationen finden Sie unter WFP Version-Independent Namen und Zielgruppenspezifische Windows-Versionen .
 

Syntax

NTSTATUS FwpsInjectionHandleCreate0(
  [in, optional] ADDRESS_FAMILY addressFamily,
  [in]           UINT32         flags,
  [out]          HANDLE         *injectionHandle
);

Parameter

[in, optional] addressFamily

Die Adressfamilie, für die das Einschleusungshandle erstellt wird. Dies kann eine der folgenden Adressfamilien sein:

AF_UNSPEC

Die Adressfamilie ist nicht angegeben.

AF_INET

Die IPv4-Adressfamilie.

AF_INET6

Die IPv6-Adressfamilie.

Für Transport-, Stream- und Forward-Injektionen ist dieser Parameter optional und kann auf AF_UNSPEC festgelegt werden, was eine nicht angegebene Adressfamilie angibt. Dieser Wert wird in Ws2def.h definiert.

[in] flags

Ein flag-Wert, der von einem Legendentreiber festgelegt wird, um den Typ der einzugebenden Daten anzugeben. Dieses Flag kann mindestens einen der folgenden Werte aufweisen:

FWPS_INJECTION_TYPE_FORWARD

Paketdaten werden durch Aufrufen des fwpsInjectForwardAsync0-Funktion .

FWPS_INJECTION_TYPE_NETWORK

Netzwerkdaten werden eingefügt, indem entweder die fwpsInjectNetworkReceiveAsync0-Funktion oder die fwpsInjectNetworkSendAsync0-Funktion .

FWPS_INJECTION_TYPE_STREAM

Stream Daten werden durch Aufrufen des fwpsStreamInjectAsync0-Funktion .

FWPS_INJECTION_TYPE_TRANSPORT

Transportdaten werden eingefügt, indem entweder die fwpsInjectTransportReceiveAsync0-Funktion oder die fwpsInjectTransportSendAsync0-Funktion .

Um einen Einschleusungshandle zu erstellen, der von mehreren Einschleusfunktionen verwendet werden kann, kombinieren Sie die Einschleusungstypbits mit bitweisen OR-Vorgängen. Wenn der Flagwert auf 0 festgelegt ist, kann der resultierende Einschleusungshandle für Transport-, Stream- und Vorwärtsinjektionen verwendet werden.

[out] injectionHandle

Ein Zeiger auf eine Variable, die das Handle empfängt.

Rückgabewert

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

Rückgabecode Beschreibung
STATUS_SUCCESS
Der Einschleusungshandle wurde erfolgreich erstellt.
STATUS_FWP_TCPIP_NOT_READY
Der TCP/IP-Netzwerkstapel ist nicht bereit. Ein Legendentreiber sollte die FwpsInjectionHandleCreate0-Funktion zu einem späteren Zeitpunkt erneut aufrufen, um einen Einschleusungshandle zu erstellen.
Andere status Codes
Ein Fehler ist aufgetreten.

Hinweise

Ein Legendentreiber ruft die Funktion FwpsInjectionHandleCreate0 auf, um ein Handle zu erstellen, das zum Einfügen von Paket- oder Streamdaten in den TCP/IP-Netzwerkstapel und zum Abfragen des Paketeinschleusungszustands verwendet werden kann. Ein Legendentreiber übergibt das erstellte Handle an die Paketeinschleusungsfunktionen und FwpsQueryPacketInjectionState0.

Nachdem ein Legendentreiber die Verwendung eines Einspritzhandles abgeschlossen hat, muss er die Funktion FwpsInjectionHandleDestroy0 aufrufen, um den Handle zu zerstören. Wenn ausstehende Injektionen noch nicht abgeschlossen sind, wartet diese Funktion auf ihre Fertigstellung, bevor sie zurückgegeben wird.

Wenn Einschleusungen in die Netzwerkschicht vorgenommen werden und sowohl IPv4- als auch IPv6-Adressfamilien gefiltert werden, muss der Legendentreiber zwei Einschleusungshandles erstellen, indem er die FwpsInjectionHandleCreate0-Funktion zweimal aufruft: einen Aufruf mit addressFamily , der auf AF_INET festgelegt ist, und einen zweiten Aufruf mit addressFamily , der auf AF_INET6 festgelegt ist.

Für die MAC-Ebenen ( *MAC_FRAME_NATIVE, *MAC_FRAME_ETHERNET, *VSWITCH_ETHERNET) können Sie den gleichen Einschleusungshandle verwenden, der mit dem flag FWPS_INJECTION_TYPE_L2 abgerufen wurde. Der Einschleusungstyp ist näher an die Einschleusungsfunktionen gebunden als an die Schichten.

Ein Codebeispiel finden Sie unter WFPSampler HelperFunctions_InjectionData.cpp.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Verfügbar ab Windows Vista.
Zielplattform Universell
Header fwpsk.h (include fwpsk.h)
Bibliothek Fwpkclnt.lib
IRQL PASSIVE_LEVEL

Weitere Informationen

FwpsInjectionHandleDestroy0

FwpsQueryPacketInjectionState0

Paketeinschleusungsfunktionen