Помогите, пожалуйста, кто знает какую-нибудь функцию чтобы узнать на каком винте находится раздел(партиция). Заранее огромное спасибо. Если кто-нибудь напишет, то он(она) меня этим очень выручит.
Re: как узнать на каком винте находится раздел(партиция)
Здравствуйте, SKyNeTRoman, Вы писали:
SKN>Помогите, пожалуйста, кто знает какую-нибудь функцию чтобы узнать на каком винте находится раздел(партиция). Заранее огромное спасибо. Если кто-нибудь напишет, то он(она) меня этим очень выручит.
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, MShura, Вы писали:
MS>>Воспользуйся готовыми программами: MS>>Paragon PM, Aronis PE, PowerQuest PM и т.д.
А>Да, гениальный ответ... Только каким боком это к WinAPI относится?
Очень просто. Достаточно воспользоваться IDA (если умеешь) и получить ответы на все вопросы.
Re: как узнать на каком винте находится раздел(партиция)
Здравствуйте, SKyNeTRoman, Вы писали:
SKN>Помогите, пожалуйста, кто знает какую-нибудь функцию чтобы узнать на каком винте находится раздел(партиция). Заранее огромное спасибо. Если кто-нибудь напишет, то он(она) меня этим очень выручит.
Вопрос не совсем корректно поставлен, так как непонятно, что у Вас есть для идентификации партиции. То есть, что будет входным параметром для функции — решения.
Это я к чему. Чтобы получить описатель партиции (для NT это будет вероятнее всего указатель на соответственную структуру _PARTITION_INFORMATION (см. ntdddisk.h), для W9X — некий порядковый номер — то как входный параметр для соотв. апишных вызовов уже нужно указать номер соотв. устройства (для нт вообще-то логическое имя соотв. физического устройства, но это имя однозначно определяется из физического номера устройства). То есть задачу и решать не нужно — если у вас есть некий описатель партиции, то это значит, что вы знаете, от какого физического устройства этот описатель получен.
Да, еще. Для W9X для доступа к физическим устройствам HDD придется подружится с Int13, которое в части для HDD при вызове c WIN32 посредством VWIN32 не совсем работает. Придется делать врапер либо в виде 16-битной длл либо в виде vxd. Для NT — есть штатные решения (CreateFile для соотв. физ устройства, DeviceIoControl + соотв. IOCTL_XXXXXX — много их)