/// <summary> /// 装载UFED镜像 /// </summary> /// <param name="mirrors"></param> /// <returns></returns> private IntPtr MountRaid(IList <string> mirrors) { var raid = new RAID_INFO_EX { dvi = new DEVICE_BASE_INFO[128] }; for (var i = 0; i < mirrors.Count; i++) { var file = mirrors[i]; if (!System.IO.File.Exists(file)) { //LogHelper.Error(string.Format(LanguageHelper.Get("LANGKEY_WenJianBuCunZai_01571"), file)); continue; } var info = new DEVICE_BASE_INFO(); info.dev_type = 0x11; info.offset_sec = 0; info.len = (ulong)FileHelper.GetFileLength(file); info.secs = (info.len + 511) / 512; info.hDev = FileServiceCoreDll.OpenFile(file); raid.dvi[i] = info; } // 阵列类型 raid.raid_type = 0x8000; // 磁盘个数 raid.dsk_counts = (uint)mirrors.Count; var resut = FileServiceCoreDll.MountRaid(ref raid); this.RaidInfoEx = raid; return(resut); }
public static extern UInt32 AnalyzeRaidInfo(IntPtr hMntRaid, lpfn_raid_update_progress lpfn, ref RAID_INFO_EX pRaidInfoEx);
public static extern UInt32 GetRaidInfo(IntPtr hMntRaid, ref RAID_INFO_EX pRaidInfoEx);
public static extern IntPtr MountRaid(ref RAID_INFO_EX pRaidInfoEx);
/// <summary> /// 分析-阵列信息 /// </summary> /// <param name="hMntRaid">阵列装载句柄</param> /// <param name="lpfn">进度回调</param> /// <param name="pRaidInfoEx">输出阵列信息</param> /// <returns></returns> public UInt32 AnalyzeRaidInfoEx(IntPtr hMntRaid, lpfn_raid_update_progress lpfn, ref RAID_INFO_EX pRaidInfoEx) { return(AnalyzeRaidInfo(hMntRaid, lpfn, ref pRaidInfoEx)); }
/// <summary> /// 获取-阵列信息 /// </summary> /// <param name="hMntRaid">阵列句柄</param> /// <param name="pRaidInfoEx">输出阵列信息结构指针</param> public UInt32 GetRaidInfoEx(IntPtr hMntRaid, ref RAID_INFO_EX pRaidInfoEx) { return(GetRaidInfo(hMntRaid, ref pRaidInfoEx)); }
/// <summary> /// 装载镜像矩阵接口 /// </summary> /// <param name="pRaidInfoEx">矩阵结构信息</param> /// <returns>阵列句柄</returns> public IntPtr MountRaidEx(ref RAID_INFO_EX pRaidInfoEx) { return(MountRaid(ref pRaidInfoEx)); }