![]() |
|
Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply |
![]()
|
|
| developer2007 |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 112 Регистрация: 5.11.2007 Репутация: -1 Всего: -2 |
Пишу программку на натив апи, надо получить доступ к винчестеру, раньше на обычном вин апи юзал CreateFile c девайсом \\.\PhysicalDrive0,
но в натив апи такого нету, там идёт наименование как-то по другому, методом тыка вычислил по верному хэндлу, \Device\Harddisk0\Partition0 - тогда NTSTATUS в порядке, но это получается доступ к разделу, а мне нужен к самому винчестеру. Попробовал \Device\Harddisk0 - выдаёт #STATUS_OBJECT_TYPE_MISMATCH. Функция такая:
Уже всю башку об стенку избил Это сообщение отредактировал(а) developer2007 - 30.4.2009, 10:15 --------------------
У настоящего програмёра прога пишется на асме с использованием натив апи |
|||
|
||||
| Riply |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Комодератор Сообщений: 572 Регистрация: 27.3.2007 Где: St. Petersburg Репутация: 21 Всего: 32 |
||||
|
||||
| developer2007 |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 112 Регистрация: 5.11.2007 Репутация: -1 Всего: -2 |
да я как раз сейчас на мсдн нашёл этот префикс, с ним доступ к винчестеру \??\PhysicalDrive0 получается нормальным, статус 0, но вот затем полученный хэндл на устройство я скармливаю ZwDeviceIoControlFile, которое мне выдаёт #STATUS_INVALID_HANDLE
Это сообщение отредактировал(а) developer2007 - 30.4.2009, 10:48 --------------------
У настоящего програмёра прога пишется на асме с использованием натив апи |
|||
|
||||
| Riply |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Комодератор Сообщений: 572 Регистрация: 27.3.2007 Где: St. Petersburg Репутация: 21 Всего: 32 |
Ну что ж - молодец (без смайлика) Теперь изучай литературу дальше Все дело в том, что различных объектов, котороые ты окрестил одинм словом "винчестер" как в Бразилии Педров Тебе надо понимать, какой именно из них ты открыл и что от него можно требовать. Я, например, лично дла себя (т.е. не вслух а мысленно. мне так удобней) их разбиваю на драйвер устройства, устойство, физ. диск и логический диск. P.S. Этими четырьмя пунктами все они не исчерпываются. Повторюсь: названия "для себя" и искать в них глубокий смысл или отталкиваться от них не стоит, просто мне показалось, что они наиболее подходящие |
|||
|
||||
| developer2007 |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 112 Регистрация: 5.11.2007 Репутация: -1 Всего: -2 |
Спасибо за помощь, красавица
IOCTL_STORAGE_QUERY_PROPERTY и STORAGE_PROPERTY_QUERY - вот это в ZwDeviceIoControl юзается. Что мне для этого надо открывать? P.S. Нашёл ещё один способ доступа - \Device\Harddisk0\DR0 --------------------
У настоящего програмёра прога пишется на асме с использованием натив апи |
|||
|
||||
| developer2007 |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 112 Регистрация: 5.11.2007 Репутация: -1 Всего: -2 |
Хм, нечто воцарилась ненормальная тишина и покой
--------------------
У настоящего програмёра прога пишется на асме с использованием натив апи |
|||
|
||||
| Riply |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Комодератор Сообщений: 572 Регистрация: 27.3.2007 Где: St. Petersburg Репутация: 21 Всего: 32 |
А что ты ожидал, если задаешь, в сущности, один и тот же вопрос, причем и палец о палец не ударив, чтобы его хотя бы грамотно сформулировать. Достаточно было посмотреть Help к данной команде и там черным по белому на чистейшем буржуинском написано что "надо открывать". Плюс к этому дается целая куча функций типа: FindFirstPartition, FindFirstVolume, FindFirstVolumeMountPoint, FindFirstDevice и иже с ними. Выбирай ту, что тебе нужна и вперед. Там и примеры для них есть. Ну да ладно. "Дело было вечером - делать было нечего" Посему набросала небольшой пример. Сразу оговариваюсь: писалось "на коленке", серьезно не тестировалось (работает и ладно, ибо ленивая я очень) И, разумеется это не единственный путь решения данной задачи.
P.S. В примере используется несколько простейших собственнолапных ф-ий (например IncPtr). Распишешь их сам (по смыслу понятно что они делают) Это сообщение отредактировал(а) Riply - 4.5.2009, 06:31 |
|||
|
||||
| Riply |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Комодератор Сообщений: 572 Регистрация: 27.3.2007 Где: St. Petersburg Репутация: 21 Всего: 32 |
Sorry. Проглядела. Затесалась одна не совсем очевидная ф-ия:
|
|||
|
||||
| developer2007 |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 112 Регистрация: 5.11.2007 Репутация: -1 Всего: -2 |
Спасибо за код, ты солнышко, но я решил по-своему, подсмотрел у тебя только ZwOpenFile. Но всё равно ты девушка моей мечты
--------------------
У настоящего програмёра прога пишется на асме с использованием натив апи |
|||
|
||||
| Riply |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Комодератор Сообщений: 572 Регистрация: 27.3.2007 Где: St. Petersburg Репутация: 21 Всего: 32 |
Вообще-то кузяво делится найденым решением, ибо на форуме могут быть люди, которым это тоже интересно |
|||
|
||||
![]()
|
| Правила форума "Delphi: WinAPI и системное программирование" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |