public void Close() { try { if (_hDevice != null) { _hDevice.Dispose(); } _hDevice = null; _deviceInfo = null; } catch (Exception ex) { Logger.Error(ex); } }
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; }
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); } }