Partager via


Fonction FwpsInjectvSwitchEthernetIngressAsync0 (fwpsk.h)

La fonction FwpsInjectvSwitchEthernetIngressAsync0 (était FwpsInjectvSwitchIngressAsync0) réinjecte un paquet de commutateur virtuel précédemment absorbé (non modifié) dans le chemin des données d’entrée du commutateur virtuel où il a été intercepté. Cette fonction peut également injecter un paquet créé avec la fonction FwpsAllocateNetBufferAndNetBufferList0 .

RemarqueFwpsInjectvSwitchEthernetIngressAsync0 est une version spécifique de FwpsInjectvSwitchEthernetIngressAsync. Pour plus d’informations , consultez WFP Version-Independent Names and Targeting Specific Versions of Windows .
 

Syntaxe

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

Paramètres

[in] injectionHandle

Handle d’injection précédemment créé par un appel à la fonction FwpsInjectionHandleCreate0 avec le paramètre flags défini sur FWPS_INJECTION_TYPE_L2.

Le paramètre addressFamily n’est pas utilisé et doit être défini sur AF_UNSPEC.

[in, optional] injectionContext

Handle facultatif pour le contexte d’injection qui peut être récupéré avec la fonction FwpsQueryPacketInjectionState0 .

[in] flags

Réservé. Doit être défini sur zéro.

[in, optional] reserved

Réservé. Doit être défini sur NULL.

[in] vSwitchId

Identificateur de commutateur virtuel que le moteur de filtrage a transmis dans la structure FWPS_INCOMING_VALUES0 à la fonction de légende classifyFn du pilote de légende. Il s’agit du GUID du commutateur virtuel fourni dans un champ xxx_VSWITCH_ID.

[in] vSwitchSourcePortId

Identificateur de port source du commutateur virtuel.

[in] vSwitchSourceNicIndex

Index de la carte réseau source du commutateur virtuel.

netBufferLists

Chaîne de structures NET_BUFFER_LIST à injecter dans le chemin de données de sortie du commutateur virtuel.

[in] completionFn

Pointeur vers une fonction de légende completionFn fournie par le pilote de légende. Le moteur de filtre appelle cette fonction une fois que les données de paquet, au niveau du paramètre netBufferLists , ont été injectées dans le chemin de données de sortie du commutateur virtuel. La fonction completionFn est appelée une fois pour chaque NET_BUFFER_LIST dans la chaîne. completionFn doit être spécifié lors de l’injection de structures clonées ou créées NET_BUFFER_LIST . Ce paramètre peut avoir la valeur NULL lors de l’injection de structures NET_BUFFER_LIST non affectées d’origine qui ont été reçues du moteur de filtre.

[in, optional] completionContext

Pointeur vers un contexte fourni par le pilote de légende qui est passé à la fonction de légende pointée par le paramètre completionFn . Ce paramètre est facultatif et peut être NULL.

Valeur retournée

La fonction FwpsInjectvSwitchEthernetIngressAsync0 retourne l’un des codes NTSTATUS suivants.

Code de retour Description
STATUS_SUCCESS
Le commutateur virtuel NET_BUFFER_LIST chaîne a été injecté avec succès.
Autres codes status
Une erreur est survenue.

Remarques

Lorsqu’une légende injecte des paquets avec FwpsInjectvSwitchEthernetIngressAsync0, les paquets injectés peuvent être classifiés à nouveau si les paquets correspondent au même filtre qu’ils étaient classés à l’origine. Par conséquent, comme les légendes des couches IP, les légendes de commutateur virtuel doivent appeler la fonction FwpsQueryPacketInjectionState0 pour se protéger contre les inspections de paquets infinies.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Disponible à partir de Windows 8.
Plateforme cible Universal
En-tête fwpsk.h (include Fwpsk.h)
Bibliothèque Fwpkclnt.lib
IRQL <= DISPATCH_LEVEL

Voir aussi

FWPS_INCOMING_VALUES0

FwpsAllocateNetBufferAndNetBufferList0

FwpsInjectionHandleCreate0

FwpsQueryPacketInjectionState0

NET_BUFFER_LIST

completionFn