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 .
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 |
---|---|
|
Le commutateur virtuel NET_BUFFER_LIST chaîne a été injecté avec succès. |
|
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
FwpsAllocateNetBufferAndNetBufferList0