Везде пишут, что разделы в Windows имеют т.н уникальное имя и что оно вроде как записано в начале раздела. Сегодня своими глазами ( посредством winobj.exe ) видел ситуацию:
Устройство одно, к примеру:
\Device\HarddiskVolume4
и ему соответствует две символических ссылки
\Volume{GUID1}
\Volume{GUID2}
Воспроизвести на "чистой" машине не удалось
Возникли мысли:
раздел переформатировался
ссылку создает "третье лицо"
это нормальный ход событий, просто мне не известный
баг мотировщика
Здравствуйте, TarasCo, Вы писали:
TC>Везде пишут, что разделы в Windows имеют т.н уникальное имя и что оно вроде как записано в начале раздела. Сегодня своими глазами ( посредством winobj.exe ) видел ситуацию: TC>Устройство одно, к примеру: TC>\Device\HarddiskVolume4 TC>и ему соответствует две символических ссылки TC>\Volume{GUID1} TC>\Volume{GUID2}
может у тебя попутались volume object ID и volume GUID ?
It is important to note that the volume GUID is not the same as the volume object ID. The volume GUID, or unique volume name, is a file system-independent value; it is assigned to the underlying storage volume by the Mount Manager. The volume object ID is assigned to the file system volume by the file system.
или какой софт себе еще GUID завел зачем-либо?
... << RSDN@Home 1.2.0 alpha rev. 653>>
Valery A. Boronin, RSDN Team, linkedin.com\in\boronin
R&D Mgmt & Security. AppSec & SDL. Data Protection and Systems Programming. FDE, DLP, Incident Management. Windows Filesystems and Drivers.
Здравствуйте, Valery A. Boronin, Вы писали:
VAB>может у тебя попутались volume object ID и volume GUID ?
VAB>
It is important to note that the volume GUID is not the same as the volume object ID. The volume GUID, or unique volume name, is a file system-independent value; it is assigned to the underlying storage volume by the Mount Manager. The volume object ID is assigned to the file system volume by the file system.
VAB>или какой софт себе еще GUID завел зачем-либо?
Черт его знает! Я пока выяснял подробности, совсем запутался Я не совсем точно выражался в первом посте, когда писал про разделы. Я так понял, следует различать volume как том и partition как раздел, хотя в обычном случае ( если нет RAID ) они совпадают? На счет постороннего софта — у меня тоже начали возникать подобные мысли, тем более, что на "чистой" машине я не смог повторить описываемую ситуацию, хотя извращался порядошно.
Здравствуйте, TarasCo, Вы писали:
TC>Черт его знает! Я пока выяснял подробности, совсем запутался Я не совсем точно выражался в первом посте, когда писал про разделы. Я так понял, следует различать volume как том и partition как раздел, хотя в обычном случае ( если нет RAID ) они совпадают?
прежде всего, уточню — мы говорим о томе как о storage volume а не о разделе жесткого диска:
A volume is a storage device, such as a fixed disk, floppy disk, or CD-ROM, that is formatted to store directories and files. A large volume can be divided into more than one logical volume, also called a partition. Each logical volume is formatted for use by a particular media-based file system, such as NTFS, FAT, or CDFS.
A storage volume, or storage device object, is a device object ? usually a physical device object (PDO) ? that represents a logical volume to the system. The storage device object resides in the storage device stack, but it is not necessarily the topmost device object in the stack.
короче volume о котором ты говоришь (логический) есть подмножество partition. легко можно создать том который не будет все доступное место на партиции использовать. И также партицию, которая не будет весь диск использовать, конечно же. уже не всегда одно и тоже...
TC>На счет постороннего софта — у меня тоже начали возникать подобные мысли, тем более, что на "чистой" машине я не смог повторить описываемую ситуацию, хотя извращался порядошно.
1) зарегистрируйся в IoRegisterDeviceInterface с MOUNTDEV_MOUNTED_DEVICE_GUID GUID defined in mountmgr.h
посмотри какой из GUID's приходит "официально". второй можно поискать (в их имиджах на диске) по всем драйверам что болтаются в памяти — в текстовом виде, затем в бинарном 16 байт (посмотреть как в памяти лежит GUID) поискать — на предмет если это кем-то hardcoded. Если это каждый раз новый GUID есс-но его искать ни у кого не надо — он генерится на лету.
2) поставь бряк\хук на IoCreateSymbolicLink и отлови момент создания обоих GUID — будет видно кто и откуда их создает? понимаю, что много раз вздрогнет бряк, но если ставить его не сразу — а скажем при попытке монтирования первого тома (в FS драйвере это IRP_MJ_FILE_SYSTEM_CONTROL+IRP_MN_MOUNT_VOLUME) — возможно процесс получится не таким утомительным. Hint: Обычно ftdisk выполняет ф-ии mount manager, поэтому можно поставить бряки в при попадании в ftdisk!DriverEntry, например... Конечно, если есть инструментарий для быстрой постановки хука куда нужно — имеет смысл запротоколировать, что там за симлинки создаются. И при совпадении с искомым GUID — остановиться.
... << RSDN@Home 1.2.0 alpha rev. 653>>
Valery A. Boronin, RSDN Team, linkedin.com\in\boronin
R&D Mgmt & Security. AppSec & SDL. Data Protection and Systems Programming. FDE, DLP, Incident Management. Windows Filesystems and Drivers.
A volume is a storage device, such as a fixed disk, floppy disk, or CD-ROM, that is formatted to store directories and files. A large volume can be divided into more than one logical volume, also called a partition. Each logical volume is formatted for use by a particular media-based file system, such as NTFS, FAT, or CDFS.
VAB>A storage volume, or storage device object, is a device object ? usually a physical device object (PDO) ? that represents a logical volume to the system. The storage device object resides in the storage device stack, but it is not necessarily the topmost device object in the stack.
VAB>короче volume о котором ты говоришь (логический) есть подмножество partition. легко можно создать том который не будет все доступное место на партиции использовать. И также партицию, которая не будет весь диск использовать, конечно же. уже не всегда одно и тоже...
Мне почему-то всегда казалось, что volume — понятие более высокого уровня, чем partition
Вот что написано в Руссиновиче:
Partitions are collections of contiguous sectors on a disk. A partition table or other disk-management database stores a partition's starting sector, size, and other characteristics.
Simple volumes are objects that represent sectors from a single partition that file system drivers manage as a single unit.
Multipartition volumes are objects that represent sectors from multiple partitions and that file system drivers manage as a single unit. Multipartition volumes offer performance, reliability, and sizing features that simple volumes do not.
Т.е. volume состоит из одной или нескольких partition, а не является их подмножеством.
A volume is a storage device, such as a fixed disk, floppy disk, or CD-ROM, that is formatted to store directories and files. A large volume can be divided into more than one logical volume, also called a partition. Each logical volume is formatted for use by a particular media-based file system, such as NTFS, FAT, or CDFS.
VAB>>короче volume о котором ты говоришь (логический) есть подмножество partition. легко можно создать том который не будет все доступное место на партиции использовать. И также партицию, которая не будет весь диск использовать, конечно же. уже не всегда одно и тоже...
Так, действительно цитату из IFS Kit тиснул и впопыхах невнимателен был — они к тому же logical volumes собственно партициями и зовут Вот все и запутал из-за этого. Было чувство что-то не так Но поторопился и отправил. Спасибо что обратили внимание надо все поправить.
Итак, попробую своими словами еще раз — все-таки простой том (volume) по-прежнему есть подмножество раздела (partition), который в свою очередь есть подмножество диска.
отвечал так, потому что помню, что Partition manager выставляет-отдает partitions для volume managers. А те в свою очередь создают disk volume device objects, куда уже FSDs монтируются.
.h>Т.е. volume состоит из одной или нескольких partition, а не является их подмножеством. .h>Мне почему-то всегда казалось, что volume — понятие более высокого уровня, чем partition
да, диск, на нем раздел и уже на разделе — том. я пытался сказать о том же
при этом Вы уже говорите о сложных томах которые могут состоять из нескольких partitions — но это уже другое.
давайте пока разберемся с простыми томами — все таки с тем что партиция больше тома я прав, потому и подмножество. подмножество — это значит что Вы не можете сделать простой том больше, чем сам раздел. про сложные тома специально не говорил ничего.
Пример: раздел в BIOS показывается вместе с MBR и размером в 1GB. При этом структуры на этом разделе сделаны так, что там живет FAT и о себе FAT в partition boot sector говорит что она размером в 500MB — после этого Volume в Windows будет длиной 500MB, а если откроете partition device object — он будет 1GB — кажется именно такие результаты несколько лет назад у меня получались. Искал-искал подтверждение с картинкой, но безуспешно
другой вопрос что системными ср-ми всегда тома на партициях форматируются в размер партиции. Плюс в доке на CreateFile не написано как открыть partition — и поэтому вероятно разницы не видно для большинства в стандартных ситуациях... вот что я пытался сказать выше
теперь почитайте цитату из Руссиновича — она моему примеру не противоречит — тома используют сектора с партиций — но не обязательно все! составные же тома могут казаться больше чем какая-то партиция так как они на нескольких располагаться могут.
.h>Вот что написано в Руссиновиче: .h>
.h>Partitions are collections of contiguous sectors on a disk. A partition table or other disk-management database stores a partition's starting sector, size, and other characteristics.
.h>Simple volumes are objects that represent sectors from a single partition that file system drivers manage as a single unit.
Valery A. Boronin, RSDN Team, linkedin.com\in\boronin
R&D Mgmt & Security. AppSec & SDL. Data Protection and Systems Programming. FDE, DLP, Incident Management. Windows Filesystems and Drivers.