none
Почему в моей программе результат записи в сектор зависит от номера сектора? RRS feed

  • Общие обсуждения

  • Windows 7, VS 2008 Pro, отформатированная в FAT32 флэшка 4 ГГб . Параметры флэш, полученные с помощью GetDiskFreeSpace:

               8            SectorPerCluster
             512            BytesPerSector
         1010943            FreeClustersForUser
         1010944            ClustersForUser
         8087544            FreeSectorForUser
         8087552            SectorForUser
      4140826624            BytesForUser
    

    Фрагмент программы:

      LONGLONG nSectorForWork = 500;
      LARGE_INTEGER offset, res;
      offset.QuadPart = nSectorForWork * (LONGLONG)nBytesPerSector;
      if(SetFilePointerEx(pdev, offset, &res, FILE_BEGIN) == INVALID_SET_FILE_POINTER)
      {
        free(dev);
        CloseHandle(pdev);
        printf("\n--- Ошибка %i при позиционировании данных ---\n", GetLastError());
        _getch();
        exit(1);
      }
      printf("\nЗапись информации - сектор %Li диска %s\n", nSectorForWork, sDisk);
      char *buf = (char*)malloc(nBytesPerSector);
      buf[0] = 0;
      strcat(buf, "Test disk 4");
      DWORD nBytes;
      if(WriteFile(pdev, buf, nBytesPerSector, &nBytes, NULL)==0) 
      {
        free(dev);
        CloseHandle(pdev);
        printf("\n--- Ошибка %i при записи данных ---\n", GetLastError());
        _getch();
        exit(1);
      }
    

    Попробовал значения nSectorForWork 500 и 1000. При 500 данные в сектор записываются (проверял редактором), а при 1000 - получаю ошибку GetLastError дает ошибку 5 (ERROR_ACCESS_DENIED). Подскажите, пожалуйста, в чем может быть дело.


    Alex
    14 ноября 2011 г. 13:03

Все ответы

  • Уважаемый пользователь!

    В вашей теме отсутствует активность в течение последних 5 дней. При отсутствии каких-либо действий в течение 2 последующих дней, тема будет переведена в разряд обсуждений. Вы можете возобновить дискуссию, просто оставив сообщение в данной теме


    Для связи [mail]
    14 декабря 2011 г. 5:24
  • Неужели никто не знает? Проект разместил на http://zalil.ru/32273458


    Alex
    14 декабря 2011 г. 10:59