How can i avoid garbage collector releasing the delegate function's address. By default, the GC is on. I've no control over GC. When i pass the AddressOf callback funciton to an unmanaged DLL, the address is lost as soon as the function passing the address of the callback returns. each time the address is a new and when there is a mis-match between the calling address and the actual address, the applicaition faults.