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





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
Господа, будьте снисходительны, не бросайтесь сразу штрафовать за, как вам кажется, глупые вопросы - beginners на то и beginners.
А ничего не говорит :-) 13.01.05 16:08  Число просмотров: 1717
Автор: amirul <Serge> Статус: The Elderman
<"чистая" ссылка>
> Если я правильно тебя понял - ты хочешь назначить своему
> девайсу GUID и спрашиваешь как это делается. Я думаю это
> описано в DDK - к сожалению сейчас у меня его нет под
> рукой. Ты смотрел там?
SetVolumeMountPoint это чистой воды ring3 функция и никакого отношения к драйверам не имеет. Если же смотреть на ее реализацию, то она использует FSCTL_SET_REPARSE_POINT, которого тоже нет в DDK. Он есть в IFSDK (Installable FileSystem Development Kit).
<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