Gestion des handles
Le gestionnaire de tables de routage conserve un nombre 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 handles en mémoire qui ont été libérés. Chaque fois qu’un handle est retourné à l’appelant, soit en tant que handle explicite, soit dans le cadre d’une structure d’informations, telle que RTM_DEST_INFO, le nombre de références pour l’objet qui correspond au handle est incrémenté. Lorsque le handle ou la structure d’informations est libéré, le nombre de références approprié est décrémenté. Lorsque le nombre de références devient égal à zéro, l’objet est libéré.
Les fonctions RtmGetDestInfo, RtmGetEntityInfo, RtmGetRouteInfo et RtmGetNextHopInfo retournent des structures d’informations. Ces fonctions correspondent aux fonctions RtmReleaseDestInfo, RtmReleaseEntityInfo, RtmReleaseRouteInfo et RtmRelaseNextHopInfo , respectivement.
Notes
La fonction RtmReleaseChangedDests doit être utilisée pour libérer les 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’informations tout en libérant le reste, il peut appeler RtmReferenceHandles avec ce handle avant de libérer la structure d’informations. Le handle peut ensuite être libéré par un appel aux fonctions RtmReleaseDestInfo, RtmReleaseEntityInfo, RtmReleaseRouteInfo et RtmRelaseNextHopInfo .