Exemplo n.º 1
0
 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();
     }
 }
Exemplo n.º 2
0
 public void ReRead()
 {
     DataLayout.Fill <Sector>(BPB.RawReadSector(Number), this);
 }
Exemplo n.º 3
0
 public void Save()
 {
     BPB.RawWriteSector(this.Number, this);
 }