Gestion de la durée de vie des points de terminaison ALE
Un pilote de légende qui prend en charge l’application de la couche Application (ALE) peut avoir besoin d’allouer des ressources pour traiter les indications. Cette rubrique explique comment configurer un pilote de légende pour libérer ces ressources lorsque le point de terminaison associé est fermé. La gestion de la durée de vie des points de terminaison ALE est prise en charge dans Windows 7 et versions ultérieures de Windows.
Pour gérer les ressources associées aux points de terminaison ALE, un pilote de légende peut s’inscrire aux couches suivantes :
FWPS_LAYER_ALE_RESOURCE_RELEASE_V4 (FWPM_LAYER_ALE_RESOURCE_RELEASE_V4)
FWPS_LAYER_ALE_RESOURCE_RELEASE_V6 (FWPM_LAYER_ALE_RESOURCE_RELEASE_V6)
FWPS_LAYER_ALE_ENDPOINT_CLOSURE_V4 (FWPM_LAYER_ALE_ENDPOINT_CLOSURE_V4)
FWPS_LAYER_ALE_ENDPOINT_CLOSURE_V6 (FWPM_LAYER_ALE_ENDPOINT_CLOSURE_V6)
Une couche de mise en production de ressources ALE est indiquée pour chaque indication au niveau de la couche d’affectation de ressources ALE correspondante (par exemple, FWPS_LAYER_ALE_RESOURCE_ASSIGNMENT_V4). Pour vous assurer que les pilotes de légende peuvent faire correspondre la couche de mise en production à la couche d’affectation, le champ de métadonnées FWPS_METADATA_FIELD_TRANSPORT_ENDPOINT_HANDLE est fourni aux deux couches et chaque point de terminaison se voit attribuer un handle unique.
Les couches de fermeture de point de terminaison ALE sont appelées différemment selon le type de point de terminaison. Pour les connexions TCP, une fermeture de point de terminaison ALE est indiquée pour chaque indication de couche de connexion d’autorisation ALE (par exemple FWPS_LAYER_ALE_AUTH_CONNECT_V4) ou de couche d’acceptation d’autorisation ALE (par exemple FWPS_LAYER_ALE_AUTH_RECV_ACCEPT_V4). Comme avec les indications de mise en production de ressources ALE, le moteur affecte un handle unique pour chaque point de terminaison et le transmet dans le champ de métadonnées FWPS_METADATA_FIELD_TRANSPORT_ENDPOINT_HANDLE. Pour les points de terminaison non TCP, une couche de fermeture de point de terminaison ALE est appelée pour chaque point de terminaison, quel que soit le nombre d’homologues distants uniques avec utilisant le socket. Une couche de fermeture de point de terminaison ALE est également appelée pour chaque socket d’écoute TCP.
Les légendes inscrites pour une couche de fermeture de point de terminaison ALE peuvent pender la classification. Cela permet à la légende de réinjecter tous les paquets mis en file d’attente pour un traitement asynchrone avant l’arrêt du point de terminaison. Pour mettre fin à la classification, le pilote de légende doit appeler FwpsPendClassify0 suivi d’un appel à FwpsCompleteClassify0 une fois le traitement terminé.
Le cas échéant, le moteur indique un handle unique pour le point de terminaison parent dans le champ de métadonnées FWPS_METADATA_FIELD_PARENT_ENDPOINT_HANDLE. Cela permet au pilote de légende de suivre les relations parent/enfant, si nécessaire.