Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2008.09.14;
Скачать: [xml.tar.bz2];

Вниз

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

 
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 вся ветка

Форум: "WinAPI";
Текущий архив: 2008.09.14;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.55 MB
Время: 0.052 c
15-1216902649
DevilDevil
2008-07-24 16:30
2008.09.14
можно ли как то в опциях Delphi-проекта указать выходное имя *.ex


15-1216821757
Vlad Oshin
2008-07-23 18:02
2008.09.14
Поставил FastMM.dll - стала BDS2006 глючить. Ни у кого больше?


15-1216655854
ПостОвый терминатор
2008-07-21 19:57
2008.09.14
О полномочиях


15-1216620114
Vlad Oshin
2008-07-21 10:01
2008.09.14
Постоянно в памяти висит процесс WinWord.exe


2-1217714068
KilkennyCat
2008-08-03 01:54
2008.09.14
Где рисуется бордер компонента?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский