public Packet(byte[] packet) { GCHandle pinnedPacket = GCHandle.Alloc(packet, GCHandleType.Pinned); aFrame = (Frame)Marshal.PtrToStructure( pinnedPacket.AddrOfPinnedObject(), typeof(Frame)); pinnedPacket.Free(); }