Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.03.13;
Скачать: 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 вся ветка

Текущий архив: 2003.03.13;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.02 c
1-39332
Andy BitOff
2003-02-28 22:33
2003.03.13
Почему не Drag n Drop пится


8-39425
Noname_
2002-12-03 10:20
2003.03.13
Глюки в DirectShow


1-39295
Beglec
2003-03-04 03:25
2003.03.13
Как сделать MDI Child форму прозрачной?


4-39622
OldFrits
2003-01-21 02:01
2003.03.13
Загрузка 16 битной Dll в Delphi 5.0


14-39518
Gydrop
2003-02-25 23:07
2003.03.13
Значение ключа по умолчанию в реестре