Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.09.14;
Скачать: CL | DM;

Вниз

Список всех дисков (не томов, именно физических дисков).   Найти похожие ветки 

 
Riply ©   (2007-11-27 00:56) [40]

> [38] slow!alfamoon!com   (26.11.07 23:36)
Спасибо.

Ну "Name" из "ArcName" получить на сложно.
А каким образом они получают SymLink ?


 
Riply ©   (2007-11-27 01:13) [41]

> [40] Riply ©   (27.11.07 00:56)
> А каким образом они получают SymLink ?

А ларчик просто открывался: NtOpenSymbolicLinkObject  :)


 
Riply ©   (2007-11-27 01:16) [42]

>[41] Riply ©   (27.11.07 01:13)

Sorry.
Не ту функциюию скопипайстила :)

NtOpenSymbolicLinkObject читать как NtQuerySymbolicLinkObject


 
Riply ©   (2007-11-27 04:01) [43]

ArcName все же не совсем то.
В ней только "стационарные" объекты.
Во всяком случае, у меня Zip disk`а и флешек в ней нет.

Очень не плохо получается, если взять за корень \Device
и перебрать все ее содержимое (не рекурсивно), фильтруя по
OBJECT_DIRECTORY_INFORMATION.TypeName равным Directory.
Остается совсем мало объектов, среди которых
сидят и все HardDisk%d. (у меня присутствуют все).
Что и требовалось :)

А как бонус за все страдания: внутри них, на блюдечке с голубой каемочкой,
находим имена их партишенов
(сканировать с фильтром Obj.TypeName равным SymbolicLink).

P.S.
Реклама:
 Летайте самолетами... Тьфу !
 Пользуйтесь утилитами от Mark Russinovich.
 Смотрите на систему с высоты птичьего полета ! :)


 
slow!alfamoon!com   (2007-11-27 10:34) [44]

Riply,

На мой взгляд, лучше (и удобнее) использовать WinObjEx (можно взять в разделе Инструменты на wasm.ru), чем аналогичный утиль от Руссиновича. Аналогично с autoruns.. Лучше OSAM от online-solutions нежели autoruns от Руссиновича (проверял)


 
Riply ©   (2007-11-27 11:53) [45]

>  [44] slow!alfamoon!com   (27.11.07 10:34)
> Лучше OSAM от online-solutions нежели autoruns от Руссиновича

А можно аргументировать ? :)

P.S.
Я доверяю только трем известным производителям
програмного обеспечения: Microsoft, Borland и Riply :)


 
slow!alfamoon!com   (2007-11-27 16:13) [46]


>
> А можно аргументировать ? :)
>
> P.S.
> Я доверяю только трем известным производителям
> програмного обеспечения: Microsoft, Borland и Riply :)
>


Можно.
1) Количество мест автозагрузки в OSAM больше чем в autoruns
2) Доступ к реестру без использования API (как к файлу)
3) Визуально удобнее и информации больше.


 
guav ©   (2007-11-27 17:05) [47]

Предлагаю для решения задачи сопоставления томов и дисков использовать IOCTL_MOUNTMGR_QUERY_POINTS для сопоставления имён томов и символьных ссылок на них и IOCTL_VOLUME_GET_VOLUME_DISK_EXTENTS или IOCTL_VOLUME_LOGICAL_TO_PHYSICAL для сопоставления разделов и номеров физических дисков.


 
slow!alfamoon!com   (2007-11-27 17:11) [48]

Тоже вариант


 
Riply ©   (2007-11-27 17:28) [49]

> [47] guav ©   (27.11.07 17:05)
Тебя же (если я ничего не путаю) не устраивал DeviceIoControl ?
Изменился подход к решению задачи ?

> Предлагаю для решения задачи сопоставления томов и дисков использовать IOCTL_MOUNTMGR_QUERY_POINTS
> для сопоставления имён томов и символьных ссылок на них и IOCTL_VOLUME_GET_VOLUME_DISK_EXTENTS
> или IOCTL_VOLUME_LOGICAL_TO_PHYSICAL для сопоставления разделов и номеров физических дисков.

Спасибо. Пойду пробовать.


 
guav ©   (2007-11-27 17:43) [50]

> [49] Riply ©   (27.11.07 17:28)


> Изменился подход к решению задачи ?

Нет, это просто другая задача. Не будеv вдаватmся в детали :)


> Спасибо. Пойду пробовать.

Ещё, чтоб те долго не думать, чему слать IOCTL_MOUNTMGR_QUERY_POINTS - шли этому:
CreateFile("\\.\MountPointManager", 0,  FILE_SHARE_READ or FILE_SHARE_WRITE, nil, OPEN_EXISTING,  0, 0)


 
guav ©   (2007-11-27 18:17) [51]

Проблема получения номера диска из "\Device\Ide\IdeDeviceP2T0L0-5" тоже решается через IOCTL код.
IOCTL_STORAGE_GET_DEVICE_NUMBER


 
Riply ©   (2007-11-27 22:01) [52]

> [50] guav ©   (27.11.07 17:43)

А чему равен IOCTL_MOUNTMGR_QUERY_POINTS ?    7143432 ?
Дело в том, что не очень люблю определения чего-то через "строки" типа:

#define MOUNTMGRCONTROLTYPE  ((ULONG)"m")

#define IOCTL_MOUNTMGR_QUERY_POINTS \
 CTL_CODE(MOUNTMGRCONTROLTYPE, 2, METHOD_BUFFERED, FILE_ANY_ACCESS)

Так и до ошибки не далеко, а рядом всякие "IOCTL_MOUNTMGR_DELETE_" - ы   :)


 
guav ©   (2007-11-27 22:48) [53]

> [52] Riply ©   (27.11.07 22:01)

Ой не боюсь не скажу сегодня... я как раз снёс предыдущие версии срдеств разработки MS, чтобы поставить VS 2008 Express, и застрял на сносе самой VS 2008 beta, там ошибка в анинсталле и ни туда ни сюда :(

Кстати, здесь можжно глянуть уже переведнные SetupApi, Native API, также в win32api объявление других IOCTL с раскрытым  CTL_CODE, можно по аналогии сделать.
http://jedi-apilib.sourceforge.net/

PS: Почту глянь :)


 
Riply ©   (2007-11-28 19:11) [54]

> [47] guav ©   (27.11.07 17:05)

Еще раз спасибо. Теперь есть полная навигация :)
А ты сам не разбирался с IOCTL_MOUNTMGR_QUERY_POINTS ?
Может подскажешь: в MOUNTMGR_MOUNT_POINT, что они подразумевают под UniqueId ?
И размер у него какой-то странный: 12 Byte.


 
guav ©   (2007-11-28 22:57) [55]

Сорри, сегодня не было времени глянуть эту константу...

Про UniqueId пишут там же, в MSDN :)
http://msdn2.microsoft.com/en-us/library/ms802377.aspx

Я бы воспользовался этим:
If the input triple is empty, the mount manager returns the entire mounted device list.
и дальше бы сам прошелся по томам, анализируя другие два параметры.

Это не единственный способ перечислить разделы и их точки подключения, но похоже, что он самый удобный.

На правах рекламы: вышла новая Visual Studio, это наверное тебя не интересует, но вместе с ней вышла и новая MSDN Library http://www.microsoft.com/downloads/details.aspx?FamilyID=6ff3bc60-32c8-4c22-8591-a20bf8dff1a2&DisplayLang=en


 
Riply ©   (2007-11-29 00:30) [56]

> [55] guav ©   (28.11.07 22:57)
> Сорри, сегодня не было времени глянуть эту константу...
Да я ее уже проверила: все правильно.

> Про UniqueId пишут там же, в MSDN :)
Нашла. Спасибо.

> Я бы воспользовался этим:
> If the input triple is empty, the mount manager returns the entire mounted device list.
> и дальше бы сам прошелся по томам, анализируя другие два параметры.

Я так и делаю. Поэтому и возник вопрос про UniqueId.

> На правах рекламы: вышла новая Visual Studio, это наверное тебя не интересует,
> но вместе с ней вышла и новая MSDN Library

А чего она такая маленькая ? Всего 2 GB :)


 
guav ©   (2007-11-29 11:43) [57]

> А чего она такая маленькая ? Всего 2 GB :)

А разве старые больше ?
Вот за апрель 2007 такая же http://www.microsoft.com/downloads/details.aspx?FamilyID=B8704100-0127-4D88-9B5D-896B9B388313&displaylang=en а предыдущие ещё меньше.



Страницы: 1 2 вся ветка

Текущий архив: 2008.09.14;
Скачать: CL | DM;

Наверх




Память: 0.58 MB
Время: 0.022 c
15-1216957269
Slider007
2008-07-25 07:41
2008.09.14
С днем рождения ! 25 июля 2008 пятница


2-1217581135
krem
2008-08-01 12:58
2008.09.14
Сохранение файла


3-1205828294
Гость-1734
2008-03-18 11:18
2008.09.14
постоянная ошибка с msdart.dll


15-1217051959
@!!ex
2008-07-26 09:59
2008.09.14
Как исправить ошибки линковки? (С++)


4-1196498941
Nucer
2007-12-01 11:49
2008.09.14
Как получить список активных пользователей в системе?