Gerenciando identificadores
O gerenciador de tabelas de roteamento mantém uma contagem de referência para todas as informações que mantém. Isso impede que o gerenciador de tabelas de roteamento retorne a um cliente todos os identificadores para a memória que foram liberados. Sempre que um identificador é retornado ao chamador, seja como um identificador explícito ou como parte de uma estrutura de informações, como RTM_DEST_INFO, a contagem de referência para o objeto que corresponde ao identificador é incrementada. Quando o identificador ou a estrutura de informações é liberado, a contagem de referência apropriada é decrementada. Quando a contagem de referência se torna zero, o objeto é liberado.
As funções RtmGetDestInfo, RtmGetEntityInfo, RtmGetRouteInfo e RtmGetNextHopInfo retornam estruturas de informações. Essas funções correspondem às funções RtmReleaseDestInfo, RtmReleaseEntityInfo, RtmReleaseRouteInfo e RtmRelaseNextHopInfo , respectivamente.
Observação
A função RtmReleaseChangedDests deve ser usada para liberar identificadores que foram retornados por uma chamada para RtmGetChangedDests. Não use RtmReleaseDests para estruturas de destino alteradas.
Se um cliente precisar manter um identificador específico em uma estrutura de informações durante a liberação do restante, o cliente poderá chamar RtmReferenceHandles com esse identificador antes de liberar a estrutura de informações. O identificador pode ser liberado por uma chamada para as funções RtmReleaseDestInfo, RtmReleaseEntityInfo, RtmReleaseRouteInfo e RtmRelaseNextHopInfo .