GCHandle para obter o endereço (ponteiro) do objeto .net

Consegui obter o endereço de um objeto .net

GCHandle objHandle = GCHandle.Alloc(obj,GCHandleType.WeakTrackResurrection);
int address = GCHandle.ToIntPtr(objHandle).ToInt32();  

e posso me lembrar do objeto

Object obj = GCHandle.FromIntPtr(IntPtr(address)).Target;

Bem, o objetivo é armazenar o endereço em uma classe nativa e ter uma informação de qual objeto nativo é transferido para qual objeto .net.
AFAIK o endereço não muda por causa da alocação, é verdade ou alguém tem uma idéia melhor para servir ao meu propósito?

obrigado

questionAnswers(4)

yourAnswerToTheQuestion