Модераторы: feodorv, GremlinProg, xvr, Fixin

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Прямой доступ к диску через Win32, Ищу АПИ для прямого доступа к диску 
:(
    Опции темы
PGsoft
Дата 21.7.2005, 21:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 30.5.2005
Где: Петербург

Репутация: 1
Всего: 1



Кстати, многие вещи касательно файловой системы (в том числе и NTFS) описаны не в MSDN или DDK, а только в Microsoft IFS Kit. Он распространяется не бесплатно, а за несколько сотен долларов (см. сайт Microsoft). Кое-какие сведения имеются в файле "ntifs.h", распространяемым различными "исследователями" Windows NT... например, http://www.acc.umu.se/~bosse/

Если у кого-нибудь есть доступ к IFS Kit 98/2000/XP - кинте ссылку, пожалуйста. Или у кого-нибудь может на CD есть (на некоторых дисках вместе с Borland C/Visual C бывает DDK и IFS), не могли бы залить куда-нибудь в Интернет (или прислать мне по почте)? :-)
PM WWW ICQ   Вверх
WERITAS
Дата 1.8.2005, 20:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


********
**


Профиль
Группа: Участник
Сообщений: 582
Регистрация: 2.5.2005
Где: Москва

Репутация: нет
Всего: 5



PGsoft

Испытал вашу "разрушительную" прогу. Сначала на ХР, потом на 2000. Пробовал не только на диске С, но и на диске А. Результата не дало НИКАКОГО! На диске А, ваще появилось сообщение, что он не могет найти устройство. По-моему данная прога будет работать тока на виндовсе НТ, на котором я это не испытывал.

P.S.
Ах да, вы уж пожалуста расшщифруйте ваши комментарии, а то я пытался по-разному их прочитать и никак не получилось


--------------------
Арт-менеджер клуба, разрешивший концерт Алексея Глызина, уволен с формулировкой "Мудак"
PM MAIL   Вверх
Ibragim
Дата 2.8.2005, 00:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 177
Регистрация: 28.9.2004
Где: Киев

Репутация: нет
Всего: нет



В программировании разбираюсь плоховато, но про накопители могу ответить все smile

1. Значит смотри - R-Studio NE, или R-Studio NTFS - лучший выбор однозначно. Не так уж сложно найти в нете и саму, и лекарство. Только показывай не на раздел, а на весь диск, правая кнопка мыши и Scan - тогда оно само найдет варианты NTFS Boot, выберешь, какой твой.

2. Совсем низкоуровневый доступ можно получить до порта, например с помощью драйверов smport.sys или подобных, и потом по стандарту ATA (www.t13.org) подавать на диск команды чтения сектора, и анализировать содержимое. Достаточно сложно, но необходимо, если на винте например бэд-блоки, и Windows просто говорит об ошибке и отказывается работать. Могу привести код по просьбе общественности (как инициализации и запуска драйвера, так чтения/запись в порт, так и команду чтения сектора) - только много получится, если никто не попросит - нечего форум засорять.


PM MAIL   Вверх
avek
Дата 16.8.2005, 13:18 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Два замечания:
1) Под Windows 9x и на достаточно свежих материнках есть функции BIOS INT13h, AH=4xh, которые не ограничены 1024 цилиндрами и вообще адресуют диск через 64-битный LBA адрес.
2) В ATA уже давно гораздо больше 28 бит адреса (вроде 64, если я правильно помню), но это должны специально поддерживать драйвер диска и сам диск. Там есть команда, которая выдаётся перед нормальной командой чтения, записи и т.п. и устанавливает старшие биты адреса для следующей команды.
Короче, см. http://www.t13.org - точнее, чем там, на халяву не бывает.
  Вверх
Romikgy
Дата 16.8.2005, 14:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 7
Всего: 146



Цитата(avek @ 16.8.2005, 13:18)
см. http://www.t13.org

Хороший ресурс smile
Только как , то что там описанно в исходник всунуть????


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
The Thing
Дата 10.9.2005, 14:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 286
Регистрация: 6.9.2004

Репутация: нет
Всего: 3



У меня почему-то не работает:
Код

HANDLE hDrive=CreateFile("\\\\.\\c:",GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);


в то время как
Код

HANDLE hDrive=CreateFile("\\\\.\\PHYSICALDRIVE0",GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);


...работает...
???


--------------------
Правильность работы программы зависит от двух велечин.
В нужном месте должны стоять нолик и еденичка.
PM MAIL   Вверх
PGsoft
Дата 10.9.2005, 15:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 30.5.2005
Где: Петербург

Репутация: 1
Всего: 1




The Thing, значит, у тебя Win9X smile См. MSDN/SDK.

PM WWW ICQ   Вверх
The Thing
Дата 10.9.2005, 16:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 286
Регистрация: 6.9.2004

Репутация: нет
Всего: 3



Win 2000



--------------------
Правильность работы программы зависит от двух велечин.
В нужном месте должны стоять нолик и еденичка.
PM MAIL   Вверх
The Thing
Дата 11.9.2005, 15:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 286
Регистрация: 6.9.2004

Репутация: нет
Всего: 3



нет... Я тут поковырялся... все верно.. доступ я получаю к физическому носителю PHYSICALDRIVE0 - мой жесткий диск, а c: или d: это уже логический диск.. и на прямую, как я понял, его получить нельзя.. на CreateFile(...) говорит, что уже занято иным процессом. Т.е. мне надо получить информацию о смещение до нужного логического диска... или как-то плясать через таблицу логических дисков. По идее должна быть фун возвращающая колонку, трек и сектор.. С которого начинается диск.

Нус... жду помощи!


--------------------
Правильность работы программы зависит от двух велечин.
В нужном месте должны стоять нолик и еденичка.
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Системное программирование и WinAPI"
Fixin
GremlinProg
xvr
feodorv
  • Большое количество информации и примеров с использованием функций WinAPI можно найти в MSDN
  • Описание сообщений, уведомлений и примеров с использованием компонент WinAPI (BUTTON, EDIT, STATIC, и т.п.), можно найти в MSDN Control Library
  • Непосредственно, перед созданием новой темы, проверьте заголовок и удостоверьтесь, что он отражает суть обсуждения.
  • После заполнения поля "Название темы", обратите внимание на наличие и содержание панели "А здесь смотрели?", возможно Ваш вопрос уже был решен.
  • Приводите часть кода, в которой предположительно находится проблема или ошибка.
  • Если указываете код, пользуйтесь тегами [code][/code], или их кнопочными аналогами.
  • Если вопрос решен, воспользуйтесь соответствующей ссылкой, расположенной напротив названия темы.
  • Один топик - один вопрос!
  • Перед тем как создать тему - прочтите это .

На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы .


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема »


 




[ Время генерации скрипта: 0.0671 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.