Форум: "Система";
Текущий архив: 2003.03.13;
Скачать: [xml.tar.bz2];
ВнизНизкоуровневый доступ к гибкому диску (форматирование, итд) Найти похожие ветки
← →
Serge Grivachenko (2003-01-13 10:38) [0]Известно, что в NT/2000/XP низкоуровневый доступ к диску отличается от Win95/98
Я пыталя открыть дисковод, как устройство, через CreateFile("//./a:") и далее пытаюсь форматировать/читать но АПИ функции DeviceIOControl, ReadFile возвращают ошибку 5 Denied Acces
Вопрос, что же я делаю не так?
Простите за мою тупость :)
← →
OxOTHuK (2003-01-13 16:19) [1]Я тебе могу выслать документацию по программированию дисководов... сам посмотришь..
← →
Сергей Макаров (2003-01-13 18:32) [2]TO OxOTHuK
и мне плиз тоже если можно.
makarov_s@rambler.ru
← →
Alex Konshin (2003-01-13 21:19) [3]А что ты конкретно делаешь?
Приведи код. Может решим твою проблему.
Правда, я, к сожалению, не работал с флоппи.
Вот для того, чтобы работать с жестким диском обычно требуется права Администратора. Поэтому с ним нужно работать через контроллер используя команды IOCTL_SCSI_MINIPORT.
Причина в том, что по умолчанию только администратор имеет право чтения-записи на физический диск, а вот для контроллера - everyone. Увидеть это можно с помощью утилиты http://www.sysinternals.com/ntw2k/freeware/winobj.shtml
Найди в фолдере \?? (или в \GLOBAL?? для XP) PhisicalDrive0, посмотри на что он указывает и открой там страничку секурити. Потом найди scsi0 и проделай то же самое.
Вот именно так в свое время я и открыл способ как доставать s/n диска не имея прав администратора.
Но для флоппи там вроде все в порядке с правами. Значит, что-то другое.
← →
Vox (2003-01-13 21:39) [4]2OxOTHuK
И мне, и мне! Нам всем нужна документация! Пожалуйста!
← →
Serge Grivachenko (2003-01-16 14:06) [5]Я нашел ошибку
Я при открытии диска не указал доступ на чтение и запись (сглупил, потому что в мсдн примере было без этого)
Я написал:
hDevice := CreateFile(PChar("\\.\a:"), 0,
FILE_SHARE_READ or FILE_SHARE_WRITE,
nil, // default security attributes
OPEN_EXISTING, // disposition
0, // file attributes
0); // don"t copy any file"s attributes
А надо было
hDevice := CreateFile(PChar("\\.\a:"),
GENERIC_READ or GENERIC_WRITE,
FILE_SHARE_READ or FILE_SHARE_WRITE,
nil, // default security attributes
OPEN_EXISTING, // disposition
0, // file attributes
0); // don"t copy any file"s attributes
Теперь проблема в том, что читать,писать и форматировать цилиндры 80,81 в NT2K нельзя, а очень хочется, потому что иначе любой файл скопированный на дискету может повредить инфу в секторах, а я этого не хочу :)
Я подумал еще работать с серийным номером дискеты. Никто не пытался писать на дискету тот серийномер который сам захочет?
Страницы: 1 вся ветка
Форум: "Система";
Текущий архив: 2003.03.13;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.007 c