コード例 #1
0
 public void Close()
 {
     try
     {
         if (_hDevice != null)
         {
             _hDevice.Dispose();
         }
         _hDevice    = null;
         _deviceInfo = null;
     }
     catch (Exception ex)
     {
         Logger.Error(ex);
     }
 }
コード例 #2
0
        private void configure(AtaDeviceInfo cfg)
        {
            ata_p.Close();
            c   = cfg.Cylinders;
            h   = cfg.Heads;
            s   = cfg.Sectors;
            lba = cfg.Lba;

            for (int i = 0; i < regs.Length; i++)       // clear registers
            {
                regs[i] = 0;
            }
            command_ok(); // reset state and transfer position

            phys_dev = -1;
            if (String.IsNullOrEmpty(cfg.FileName))
            {
                return;
            }

            var filedev = new PhysicalDeviceInfo();

            filedev.filename = cfg.FileName;
            filedev.type     = cfg.IsCdrom ? DEVTYPE.ATA_FILECD : DEVTYPE.ATA_FILEHDD;

            bool success = false;

            if (filedev.type == DEVTYPE.ATA_FILEHDD)
            {
                filedev.usage = DEVUSAGE.ATA_OP_USE;
                success       = ata_p.Open(filedev, cfg.ReadOnly | cfg.IsCdrom);
                atapi         = false;
            }
            //if (filedev.type == DEVTYPE.ATA_FILECD)
            //{
            //    filedev.usage = DEVUSAGE.ATA_OP_USE;
            //    errCode = atapi_p.open(filedev);
            //    atapi = 1;
            //}
            if (success)
            {
                return;
            }
            filedev.filename = string.Empty;
        }
コード例 #3
0
 public bool Open(PhysicalDeviceInfo deviceInfo, bool isReadOnly)
 {
     try
     {
         _deviceInfo = deviceInfo;
         _isReadOnly = isReadOnly;
         _hDevice    = new FileStream(
             _deviceInfo.filename,
             _isReadOnly ? FileMode.Open : FileMode.OpenOrCreate,
             _isReadOnly ? FileAccess.Read : FileAccess.ReadWrite,
             FileShare.ReadWrite);
         return(true);
     }
     catch (Exception ex)
     {
         Logger.Error(ex);
         return(false);
     }
 }