Gestione degli handle

Gestione tabelle di routing gestisce un numero di riferimenti per tutte le informazioni gestite. Ciò impedisce alla gestione tabelle di routing di restituire a un client eventuali handle per la memoria liberati. Ogni volta che un handle viene restituito al chiamante, come handle esplicito o come parte di una struttura di informazioni, ad esempio RTM_DEST_INFO, il conteggio dei riferimenti per l'oggetto corrispondente all'handle viene incrementato. Quando viene rilasciato l'handle o la struttura delle informazioni, il conteggio dei riferimenti appropriato viene decrementato. Quando il conteggio dei riferimenti diventa zero, l'oggetto viene liberato.

Le funzioni RtmGetDestInfo, RtmGetEntityInfo, RtmGetRouteInfo e RtmGetNextHopInfo restituiscono strutture di informazioni. Queste funzioni corrispondono rispettivamente alle funzioni RtmReleaseDestInfo, RtmReleaseEntityInfo, RtmReleaseRouteInfo e RtmRelaseNextHopInfo .

Nota

La funzione RtmReleaseChangedDests deve essere usata per rilasciare handle restituiti da una chiamata a RtmGetChangedDests. Non usare RtmReleaseDests per le strutture di destinazione modificate.

 

Se un client deve mantenere un handle specifico in una struttura di informazioni durante il rilascio del resto, il client può chiamare RtmReferenceHandles con tale handle prima di rilasciare la struttura delle informazioni. L'handle può quindi essere rilasciato da una chiamata alle funzioni RtmReleaseDestInfo, RtmReleaseEntityInfo, RtmReleaseRouteInfo e RtmRelaseNextHopInfo .