Quebra automática de delegados e ponteiros de função não gerenciada
A.NET Framework versão 2.0 e posterior fornece a capacidade de ponteiros de função de marshaling entre código gerenciado e usando os seguintes métodos:
Use o Marshal.GetDelegateForFunctionPointer método para empacotar um ponteiro de função não gerenciada em um delegate. Esse método usa o System.IntPtr classe para representar um ponteiro de função não gerenciada.
Use o Marshal.GetFunctionPointerForDelegate método para empacotar um delegado em um ponteiro de função que pode ser chamado do código não gerenciado. Quando você usa esse método, você deve manter manualmente o delegado seja coletado pelo coletor de lixo. O coletor de lixo não controla as referências ao código não gerenciado.
Observe que o empacotador de parâmetro também pode empacotar os ponteiros de função para representantes na.NET Framework 2.0 e posterior.