Gestion des handles
Le gestionnaire de table de routage conserve un décompte de références pour toutes les informations qu’il gère. Cela empêche le gestionnaire de table de routage de retourner à un client tous les descripteurs de la mémoire qui a été libérée. Chaque fois qu’un handle est retourné à l’appelant, en tant que handle explicite ou en tant que partie d’une structure d’informations, comme les _ _ informations de dest RTM, le nombre de références pour l’objet qui correspond au descripteur est incrémenté. Lorsque le handle ou la structure d’informations est libéré, le décompte de références approprié est décrémenté. Lorsque le nombre de références est égal à zéro, l’objet est libéré.
Les fonctions RtmGetDestInfo, RtmGetEntityInfo, RtmGetRouteInfo et RtmGetNextHopInfo retournent des structures d’informations. Ces fonctions correspondent respectivement aux fonctions RtmReleaseDestInfo, RtmReleaseEntityInfo, RtmReleaseRouteInfo et RtmRelaseNextHopInfo .
Notes
La fonction RtmReleaseChangedDests doit être utilisée pour libérer des handles qui ont été retournés par un appel à RtmGetChangedDests. N’utilisez pas RtmReleaseDests pour les structures de destination modifiées.
Si un client doit conserver un handle spécifique dans une structure d’information tout en libérant le reste, le client peut appeler RtmReferenceHandles avec ce handle avant de libérer la structure d’informations. Le descripteur peut ensuite être libéré par un appel aux fonctions RtmReleaseDestInfo, RtmReleaseEntityInfo, RtmReleaseRouteInfo et RtmRelaseNextHopInfo .