Вниз
Скачать: CL | DM;

Низкоуровневый доступ к гибкому диску (форматирование, итд)   Найти похожие ветки 

← →
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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.01 c
3-39211
Raph
2003-02-21 21:12
2003.03.13
Таблицы


1-39373
grei
2003-03-02 19:37
2003.03.13
Открытие файлов через windows


14-39483
Jony
2003-02-27 13:15
2003.03.13
Почему


1-39268
Zelius
2003-03-01 16:05
2003.03.13
Помогите разобратсья со временем модификации файла!


3-39227
devol
2003-02-05 16:08
2003.03.13
SQL Server




   Наверх