Диски, тома, разделы...

Тема в разделе "WASM.WIN32", создана пользователем Jin X, 6 июл 2018.

  1. Jin X

    Jin X Active Member

    Публикаций:
    0
    Регистрация:
    15 янв 2009
    Сообщения:
    268
    Адрес:
    Кольца Сатурна
    Приветствую!

    Есть \\.\PhysicalDriveX, его можно открыть через CreateFile и получить GUID (IOCTL_DISK_GET_DRIVE_GEOMETRY_EX... или можно как-то ещё проще получить GUID?).

    Можно получить список (GUID) всех томов через FindFirstVolume/FindNextVolume (в формате \\?\Volume{GUID}).
    0. Можно ли получить GUID типа раздела через IOCTL_DISK_GET_PARTITION_INFO_EX, подставив этот том (\\?\Volume{GUID})?

    1. И есть ли вообще разница между томами и разделами?
    К примеру, в описании IOCTL_DISK_GET_LENGTH_INFO сказано "Retrieves the length of the specified disk, volume, or partition." (типа раздел и том – это не одно и то же).

    2. И главный вопрос: как связать физические диски с разделами?
    Т.е. определить – какие разделы на каком физическом диске находятся?

    3. А как перечислить все физические диски и все разделы на этом диске?
    Можно открывать все подряд PhysicalDrive0, 1, 2... до ошибки типа not found. Но это единственный способ?
    А не может быть такого, что PhysicalDrive1 нет, а PhysicalDrive2 есть?

    4. Ну и ещё вопрос до кучи: какие вообще устройства (диски, разделы) можно задать для CreateFile кроме \\.\PhysycalDriveX, \\.\CdRomX и \\.\X: ? Scsi ещё вроде были (только как их задать – х/з).
    В инете можно найти ещё устройства типа \Device\Harddisk0\Partition1, но у меня открыть (CreateFile) такое устройство не получается (не найден), задаю \\?\Device\Harddisk0\Partition1 – аналогично (\\.\ тоже, без Device\ та же история). Ещё фигурируют какие-то \Device\Harddisk0\DR0 и т.п. – тоже не работает (что это такое вообще?)

    5. Откуда берутся GUID дисков на основе MBR (или вообще с boot-секторами в начале) типа флешек и пр.? Там же нигде эти GUID не зашиты!