[an error occurred while processing this directive]
Именно. Так вот если открыть в "виндус" устройство, то есть например "\\.\C:" - то виндус будет любить блоки, кратные 512 байт. А некратные - не будет любить, вплоть до ошибки, если открыто было c (+)
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено SM 07 сентября 2006 г. 16:32
В ответ на: Так и вопрос был "какие блоки любит Виндус" . отправлено Тумблер 07 сентября 2006 г. 16:15

FILE_FLAG_NO_BUFFERING. Вот даже выдержка из MSDN (для неверующих)

An application must meet certain requirements when working with files opened with FILE_FLAG_NO_BUFFERING:

- File access must begin at byte offsets within the file that are integer multiples of the volume's sector size.

- File access must be for numbers of bytes that are integer multiples of the volume's sector size. For example, if the sector size is 512 bytes, an application can request reads and writes of 512, 1024, or 2048 bytes, but not of 335, 981, or 7171 bytes.

- Buffer addresses for read and write operations must be sector aligned (aligned on addresses in memory that are integer multiples of the volume's sector size).

Заметьте, Sector size, а не Cluster Size. Дальнейшее расследование показало, что если без флага FILE_FLAG_NO_BUFFERING работать, то оптимальная производительность достигается при тех же условиях, которые являются обязательными при NO_BUFFERING. И важен тут размер сектора (физического на устройстве), а не кластера, который логическая единица. И еще поясню - разница такая - если Вам надо записать пол-сектора, или целый сектор, но не с начала, то винде придется сначала считать, потом занести новую информацию, потом записать. Если пишется целый сектор с начала - просто записать его. А кластер всегда состоит из целого числа секторов. И даже если записать пол-кластера, но при этом там целое число секторов, то на производительности это никак не скажется.

Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа
Имя (обязательно): 
Пароль: 
E-mail: 

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 
URL изображения: 


Rambler's Top100 Рейтинг@Mail.ru
Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание