/// <summary> /// CopyMemoryEx /// </summary> /// <param name="dest">DataGraphPackage</param> /// <param name="source">源数据缓存</param> /// <returns></returns> public unsafe static void CopyMemoryEx(ref DataGraphHeader dest, byte[] source, int SourceStart) { IntPtr dp; IntPtr sp; fixed(DataGraphHeader *ds = &dest) { fixed(byte *sr = &source[SourceStart]) { dp = (IntPtr)ds; sp = (IntPtr)sr; Kernel32.RtlCopyMemory(dp, sp, (uint)sizeof(DataGraphHeader)); } } }
/// <summary> /// CopyMemoryEx /// </summary> /// <param name="dest">目标缓存区</param> /// <param name="DestStart">目标缓存区中的开始位置</param> /// <param name="source">DataGraphPackage</param> /// <returns></returns> public unsafe static void CopyMemoryEx(byte[] dest, int DestStart, ref DataGraphHeader source) { IntPtr dp; IntPtr sp; fixed(byte *ds = &dest[DestStart]) { fixed(DataGraphHeader *sr = &source) { dp = (IntPtr)ds; sp = (IntPtr)sr; Kernel32.RtlCopyMemory(dp, sp, (uint)sizeof(DataGraphHeader)); } } }
/// <summary> /// CopyMemoryEx /// </summary> /// <param name="dest">DataGraphPackage</param> /// <param name="source">源数据缓存</param> /// <returns></returns> public unsafe static void CopyMemoryEx(ref DataGraphHeader dest, byte[] source) { CopyMemoryEx(ref dest, source, 0); }
/// <summary> /// CopyMemoryEx /// </summary> /// <param name="dest">目标缓存区</param> /// <param name="source">DataGraphPackage</param> /// <returns></returns> public unsafe static void CopyMemoryEx(byte[] dest, ref DataGraphHeader source) { CopyMemoryEx(dest, 0, ref source); }