информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Портрет посетителяАтака на InternetВсе любят мед
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Бэкдор в xz/liblzma, предназначенный... 
 Три миллиона электронных замков... 
 Doom на газонокосилках 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / beginners
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
Господа, будьте снисходительны, не бросайтесь сразу штрафовать за, как вам кажется, глупые вопросы - beginners на то и beginners.
Это называется reparse/junction point 13.01.05 16:05  Число просмотров: 1757
Автор: amirul <Serge> Статус: The Elderman
<"чистая" ссылка>
> Есть такая штука SetVolumeMountPoint, имея volume name
> девайса в виде "\\?\Volume{GUID}\", можно примонтировать
> его в некоторую папку..
>
> Вопрос. Есть девайс, к нему пишется драйвер.. Как бы этому
> девайсу назначить volume name, так чтобы его потом можно
> было монтировать..
>
> Или может какие другие методы есть??
Думаю стоит начать с MSDN-а:

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/fileio/base/mounting_a_volume_at_a_mount_point.asp
<beginners>
монтирование девайсов в ntfs папки 13.01.05 15:40   [Garick]
Автор: zelych Статус: Member
<"чистая" ссылка>
Есть такая штука SetVolumeMountPoint, имея volume name девайса в виде "\\?\Volume{GUID}\", можно примонтировать его в некоторую папку..

Вопрос. Есть девайс, к нему пишется драйвер.. Как бы этому девайсу назначить volume name, так чтобы его потом можно было монтировать..

Или может какие другие методы есть??
Это называется reparse/junction point 13.01.05 16:05  
Автор: amirul <Serge> Статус: The Elderman
<"чистая" ссылка>
> Есть такая штука SetVolumeMountPoint, имея volume name
> девайса в виде "\\?\Volume{GUID}\", можно примонтировать
> его в некоторую папку..
>
> Вопрос. Есть девайс, к нему пишется драйвер.. Как бы этому
> девайсу назначить volume name, так чтобы его потом можно
> было монтировать..
>
> Или может какие другие методы есть??
Думаю стоит начать с MSDN-а:

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/fileio/base/mounting_a_volume_at_a_mount_point.asp
А что говорит DDK? 13.01.05 16:02  
Автор: NKritsky <Nickolay A. Kritsky> Статус: Elderman
<"чистая" ссылка>
Если я правильно тебя понял - ты хочешь назначить своему девайсу GUID и спрашиваешь как это делается. Я думаю это описано в DDK - к сожалению сейчас у меня его нет под рукой. Ты смотрел там?
А ничего не говорит :-) 13.01.05 16:08  
Автор: amirul <Serge> Статус: The Elderman
<"чистая" ссылка>
> Если я правильно тебя понял - ты хочешь назначить своему
> девайсу GUID и спрашиваешь как это делается. Я думаю это
> описано в DDK - к сожалению сейчас у меня его нет под
> рукой. Ты смотрел там?
SetVolumeMountPoint это чистой воды ring3 функция и никакого отношения к драйверам не имеет. Если же смотреть на ее реализацию, то она использует FSCTL_SET_REPARSE_POINT, которого тоже нет в DDK. Он есть в IFSDK (Installable FileSystem Development Kit).
Есть подозрение, что эти гуиды раздаёт LDM. Или они... 13.01.05 18:10  
Автор: NKritsky <Nickolay A. Kritsky> Статус: Elderman
<"чистая" ссылка>
Есть подозрение, что эти гуиды раздаёт LDM. Или они прописаны в .inf файле?
кто такой LDM?? и кстати, то,что прописывается в инфах никакого отношения к volume name не имеет 15.01.05 16:48  
Автор: zelych Статус: Member
<"чистая" ссылка>
LDM - logical disk manager - менеджер логических дисков 17.01.05 12:29  
Автор: amirul <Serge> Статус: The Elderman
<"чистая" ссылка>
Собственно по фигу, кто его раздает 13.01.05 18:55  
Автор: amirul <Serge> Статус: The Elderman
<"чистая" ссылка>
> Есть подозрение, что эти гуиды раздаёт LDM. Или они
> прописаны в .inf файле?
Корневой вопрос по сути был: как написать драйвер файловой системы?

В обычном DDK для этого нет ни хедеров ни хелпа. Поможет только IFSDK. Говорю как краевед :-)
Ну а в IFSDK по идее должны быть примеры файловых систем.
никакого желания пользоваться ifs`ом нету.. он денег стоит.. 15.01.05 16:49  
Автор: zelych Статус: Member
Отредактировано 15.01.05 16:52  Количество правок: 1
<"чистая" ссылка>
и вообще, он вроде тут не к месту.. по идее volume name должен раздаваться mount manager`ом.. или что-то в этом роде..
"Вопрос. Есть девайс, к нему пишется драйвер.. Как бы... 17.01.05 12:30  
Автор: amirul <Serge> Статус: The Elderman
<"чистая" ссылка>
> и вообще, он вроде тут не к месту.. по идее volume name
> должен раздаваться mount manager`ом.. или что-то в этом
> роде..

"Вопрос. Есть девайс, к нему пишется драйвер.. Как бы этому девайсу назначить volume name, так чтобы его потом можно было монтировать.."

Я так понимаю тебе нужно какое-то пространство имен, связанное с этим девайсом, которое бы отображалось на файловую систему (типа /proc в линухе). Если так, то без IFSDK не обойтись. А если этот девайс является mass storage девайсом, то винда вроде сама должна понять, что к чему - его только отформатить останется и отмепить.

А что до цены... Дык винда тоже денег стоит, и что? Вот линк для затравки
ed2k://|file|[MICROSOFT.WINDOWS.SERVER.2003.IFS.DDK].MICROSOFT.WINDOWS.SERVER.V2003.IFS.DDK-ISO.LeDreactor.bin|218879472|19A30309C3FD2CB77311E66794E2DC32

200 метров
всё значительно проще 21.01.05 13:11  
Автор: zelych Статус: Member
<"чистая" ссылка>
ifs неприемлем с идеологической точки зрения

> Я так понимаю тебе нужно какое-то пространство имен,
> связанное с этим девайсом, которое бы отображалось на
> файловую систему (типа /proc в линухе). Если так, то без
> IFSDK не обойтись. А если этот девайс является mass storage
> девайсом, то винда вроде сама должна понять, что к чему -
> его только отформатить останется и отмепить.

достаточно создать девайс типа FILE_DEVICE_DISK_FILE_SYSTEM, затем при вызове SetVolumeMountPoint или DefineDosDevice драйверу посылается IRP_MJ_FILE_SYSTEM_CONTROL -> IRP_MN_ MOUNT_VOLUME, дальше драйвер подключается в стек над драйвером диска и всё работает..

а вот кто volume name создаёт, так и не понятно..
"Ты на рыбалку?" "Нет, я на рыбалку" 21.01.05 14:35  
Автор: amirul <Serge> Статус: The Elderman
<"чистая" ссылка>
> ifs неприемлем с идеологической точки зрения

В смысле
- Тебе нужен драйвер файловой системы (именно для этого и нужен IFSKIT)
- Нет, мне нужен драйвер файловой системы.

> достаточно создать девайс типа
> FILE_DEVICE_DISK_FILE_SYSTEM, затем при вызове
> SetVolumeMountPoint или DefineDosDevice драйверу посылается
> IRP_MJ_FILE_SYSTEM_CONTROL -> IRP_MN_ MOUNT_VOLUME,
> дальше драйвер подключается в стек над драйвером диска и
> всё работает..

Одним IRP_MN_MOUNT_VOLUME не обойдется. Как минимум надо будет еще обрабатывать IRP_MN_QUERY_DIRECTORY для того же IRP_MJ_FILE_SYSTEM_CONTROL

> а вот кто volume name создаёт, так и не понятно..

Говорю же, ЭТО делается при помощи IFSDDK и именно в нем описано, как писать файловые системы. Ладно, у меня дома он есть - поковыряюсь в хелпе, если не забуду
вместо IFS я, по идеологическим соображениям, использую гнушный ntifs.h.. 21.01.05 14:57  
Автор: zelych Статус: Member
<"чистая" ссылка>
> Говорю же, ЭТО делается при помощи IFSDDK и именно в нем описано,
> как писать файловые системы. Ладно, у меня дома он есть - поковыряюсь
> в хелпе, если не забуду

Если не забудешь, тогда Спасибо.. а то к ntifs.h хелпов, к сожалению, не прилагается..
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2024 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach