internal unsafe void ReceiveMessage(IntPtr msgPtr) { var msg = Marshal.PtrToStructure <NetMsg>(msgPtr); try { OnMessage(msg.Connection, msg.Identity, msg.DataPtr, msg.DataSize, msg.RecvTime, msg.MessageNumber, msg.Channel); } finally { // // Releases the message // NetMsg.InternalRelease((NetMsg *)msgPtr); } }