ハンドルの管理
ルーティング テーブル マネージャーは、管理するすべての情報の参照カウントを保持します。 これにより、解放されたメモリへのハンドルをルーティング テーブル マネージャーがクライアントに返すのを防ぐことができます。 明示的なハンドルとして、または情報構造の一部 ( RTM_DEST_INFOなど) としてハンドルが呼び出し元に返されるたびに、ハンドルに対応するオブジェクトの参照カウントがインクリメントされます。 ハンドルまたは情報構造が解放されると、適切な参照カウントがデクリメントされます。 参照カウントが 0 になると、オブジェクトは解放されます。
RtmGetDestInfo、RtmGetEntityInfo、RtmGetRouteInfo、RtmGetNextHopInfo 関数は情報構造を返します。 これらの関数は、 RtmReleaseDestInfo、 RtmReleaseEntityInfo、 RtmReleaseRouteInfo 、 RtmRelaseNextHopInfo の各関数に対応します。
Note
RtmReleaseChangedDests 関数を使用して、RtmGetChangedDests の呼び出しによって返されたハンドルを解放する必要があります。 変更された変換先構造体には RtmReleaseDests を使用しないでください。
残りの部分を解放するときに、クライアントが情報構造内の特定のハンドルを保持する必要がある場合、クライアントは、情報構造を解放する前に、そのハンドルを使用して RtmReferenceHandles を呼び出すことができます。 その後、RtmReleaseDestInfo、RtmReleaseEntityInfo、RtmReleaseRouteInfo、RtmRelaseNextHopInfo 関数の呼び出しによってハンドルを解放できます。