Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die FwpsInjectNetworkSendAsync0-Funktion fügt Paketdaten in den Sendedatenpfad ein.
Syntax
NTSTATUS FwpsInjectNetworkSendAsync0(
[in] HANDLE injectionHandle,
[in, optional] HANDLE injectionContext,
[in] UINT32 flags,
[in] COMPARTMENT_ID compartmentId,
[in, out] NET_BUFFER_LIST *netBufferList,
[in] FWPS_INJECT_COMPLETE0 completionFn,
[in, optional] HANDLE completionContext
);
Parameter
[in] injectionHandle
Ein Einfügungshandle, das zuvor durch einen Aufruf der FwpsInjectionHandleCreate0-Funktion erstellt wurde, wobei die Flags Parameter auf FWPS_INJECTION_TYPE_NETWORK festgelegt sind.
[in, optional] injectionContext
Ein optionales Handle für den Einfügungskontext. Wenn angegeben, kann sie durch Aufrufen der FwpsQueryPacketInjectionState0 Funktion abgerufen werden, wenn der Paketeinfügungsstatus FWPS_PACKET_INJECTION_STATEFWPS_PACKET_INJECTED_BY_SELF oder FWPS_PACKET_PREVIOUSLY_INJECTED_BY_SELFist.
[in] flags
Reserviert. Legendentreiber müssen diesen Parameter auf Null festlegen.
[in] compartmentId
Der Bezeichner des Routingfachs, in das die Paketdaten eingefügt werden, angegeben als COMPARTMENT_ID Typ. Dieser Bezeichner wird einer Legende über die compartmentId Mitglied der FWPS_INCOMING_METADATA_VALUES0 Struktur, die an die klassifizierenFn Legendenfunktion des Legendentreibers übergeben wird. Wenn das compartmentId Member für Legenden verfügbar ist, wird FWPS_METADATA_FIELD_COMPARTMENT_ID im currentMetadataValues Member festgelegt. Legen Sie andernfalls diesen Parameter auf UNSPECIFIED_COMPARTMENT_ID fest.
[in, out] netBufferList
Ein Zeiger auf eine NET_BUFFER_LIST Struktur, die die injizierten Paketdaten beschreibt. Ein Popuptreiber weist eine NET_BUFFER_LIST Struktur zum Einfügen von Paketdaten zu, indem entweder die FwpsAllocateCloneNetBufferList0-Funktion oder die FwpsAllocateNetBufferAndNetBufferList0--Funktion aufgerufen wird. Die NET_BUFFER_LIST-Struktur muss mit einem IP-Header beginnen.
[in] completionFn
Ein Zeiger auf eine completionFn Legendenfunktion, die vom Legendentreiber bereitgestellt wird. Das Filtermodul ruft diese Funktion nach den Paketdaten auf, die durch den NetBufferList-parameter-Parameter beschrieben werden, in den Netzwerkstapel eingefügt wurde.
[in, optional] completionContext
Ein Zeiger auf einen vom Beschriftungstreiber bereitgestellten Kontext, der an die Legendenfunktion übergeben wird, auf die der completionFn Parameter verweist. Dieser Parameter ist optional und kann NULL-werden.
Rückgabewert
Die FwpsInjectNetworkSendAsync0-Funktion gibt einen der folgenden NTSTATUS-Codes zurück.
Rückgabecode | Beschreibung |
---|---|
|
Die Paketdateneinfügung wurde erfolgreich initiiert. Das Filtermodul ruft die Vervollständigungsfunktion auf, nachdem das Filtermodul das Einfügen der Paketdaten in den Netzwerkstapel abgeschlossen hat oder wenn anschließend ein Fehler aufgetreten ist. Bei einem Fehler gibt das Status- Mitglied der abgeschlossenen NET_BUFFER_LIST Struktur den Grund für den Fehler an. |
|
Der TCP/IP-Netzwerkstapel ist nicht bereit, die Einfügung von Paketdaten zu akzeptieren. |
|
Der Einspritzpunkt wird geschlossen. |
|
Das Einfügungshandle wurde nicht mit dem parameter Flags des Parameters "Flags" erstellt. FwpsInjectionHandleCreate0-Funktion auf FWPS_INJECTION_TYPE_NETWORK festgelegt. |
|
Fehler. |
Bemerkungen
Ein Popuptreiber ruft die FwpsInjectNetworkSendAsync0-Funktion auf, um Netzwerkpaketdaten in den Sendedatenpfad einzufügen. Diese Funktion kann asynchron ausgeführt werden. Beschriftungstreiber einfügen normalerweise Daten in den Netzwerkstapel, wenn Paketdaten geändert werden. Weitere Informationen dazu, wie ein Beschriftungstreiber Paketdaten ändern kann, finden Sie unter Callout Driver Operations.
Wenn der Rückgabewert nicht STATUS_SUCCESS ist, wird die Vervollständigungsfunktion nicht aufgerufen. In diesem Fall muss die Netpufferliste, auf die von netBufferList verwiesen wird, durch einen Aufruf der FwpsFreeNetBufferList0- oder FwpsFreeCloneNetBufferList0 Funktionen.
Das injizierte Paket kann dem Popuptreiber erneut angezeigt werden. Um endlose Schleifen zu verhindern, sollte der Treiber zuerst die FwpsQueryPacketInjectionState0-Funktion, bevor Sie mit einem Aufruf der klassifizierenFn Popupfunktion fortfahren, und der Treiber sollte Pakete zulassen, die den Einfügzustand aufweisen, FWPS_PACKET_INJECTION_STATE auf FWPS_PACKET_INJECTED_BY_SELF oder FWPS_PACKET_PREVIOUSLY_INJECTED_BY_SELFfestgelegt ist.
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Verfügbar ab Windows Vista. |
Zielplattform- | Universal |
Header- | fwpsk.h (include Fwpsk.h) |
Library | Fwpkclnt.lib |
IRQL- | <= DISPATCH_LEVEL |