public void Initialize()
 {
     _fs = File.Open("D://vc_2015.x64.exe", FileMode.Open, FileAccess.ReadWrite);
     Assert.IsNotNull(_fs);
     _adapter = new UnmanagedStreamAdapter(_fs);
     Assert.IsNotNull(_fs);
 }
        public bool CheckIsValidStream(Stream stream)
        {
            if (stream == null)
            {
                throw new ArgumentNullException(nameof(stream));
            }

            var unManagedStreamAdapter = new UnmanagedStreamAdapter(stream);

            try {
                var stPartition = ExtX_Init(unManagedStreamAdapter.StreamPtr);
                if (stPartition == IntPtr.Zero)
                {
                    return(false);
                }
                else
                {
                    ExtX_Exit(stPartition);
                    return(true);
                }
            }
            catch (Exception ex) {
                LoggerService.WriteCallerLine(ex.Message);
                return(false);
            }
            finally {
                unManagedStreamAdapter.Dispose();
            }
        }
Exemplo n.º 3
0
 public void Initialize()
 {
     _fs = File.OpenRead("E://anli/gpt.img");
     //"G:\\MobileImgs\\Honor\\mmcblk0");
     //"J://anli/noname");
     _unManagedStreamAdapter = new UnmanagedStreamAdapter(_fs);
     Assert.AreNotEqual(_unManagedStreamAdapter.StreamPtr, IntPtr.Zero);
     _partPtr = Partition_Init(_unManagedStreamAdapter.StreamPtr);
     Assert.AreNotEqual(_partPtr, IntPtr.Zero);
 }
        public ExtUnmanagedManager(Stream stream)
        {
            if (stream == null)
            {
                throw new ArgumentNullException(nameof(stream));
            }

            try {
                StreamAdpater = new UnmanagedStreamAdapter(stream);
                ExtManagerPtr = ExtX_Init(StreamAdpater.StreamPtr);
            }
            catch (Exception ex) {
                LoggerService.WriteCallerLine(ex.Message);
            }
        }
Exemplo n.º 5
0
        /// <summary>
        /// 通过一个流实例获取非托管管理单元适配器实例以及对应的适配器实例;
        /// </summary>
        /// <param name="stream"></param>
        /// <returns></returns>
        public UnmanagedBasicDeviceManager(Stream stream)
        {
            if (stream == null)
            {
                throw new ArgumentNullException(nameof(stream));
            }

            try {
                StreamAdpater  = new UnmanagedStreamAdapter(stream);
                BasicDevicePtr = Partition_Init(StreamAdpater.StreamPtr);
            }
            catch (Exception ex) {
                LoggerService.WriteCallerLine(ex.Message);
            }
        }