MemoryHandle
A handle for the memory.
Returns the pointer to memory, where the memory is assumed to be pinned and hence the address won't change.
Creates a new memory handle for the memory.
Frees the pinned handle and releases IPinnable.