public DiskInfo(string drive) { drive = "\\\\.\\" + drive; NotNTFSFlag = false; // Создание дескриптора файла для чтения с диска Drive = HandleDriveAPI.CreateFile( drive, HandleDriveAPI.GENERIC_READ, HandleDriveAPI.FILE_SHARE_READ | HandleDriveAPI.FILE_SHARE_WRITE, IntPtr.Zero, HandleDriveAPI.OPEN_EXISTING, 0, IntPtr.Zero ); if (Drive.IsInvalid) { Marshal.ThrowExceptionForHR(Marshal.GetHRForLastWin32Error()); } // считываем блок параметров БИОС BPB = new BPB(Drive); if (BPB.Signature != "NTFS ") { NotNTFSFlag = true; } else { // считываем первую запись МФТ MFT = GetFirstMFT(); } }
public void ReRead() { DataLayout.Fill <Sector>(BPB.RawReadSector(Number), this); }
public void Save() { BPB.RawWriteSector(this.Number, this); }