![]() |
|
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]()
|
|
| nmn |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 593 Регистрация: 26.11.2005 Репутация: нет Всего: 1 |
здравствуйте
необходимо создать виртуальный сетевой диск, как это можно сделать? |
|||
|
||||
| Sartorius |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1568 Регистрация: 18.7.2006 Где: Ivory tower Репутация: 1 Всего: 37 |
Виртуальный диск делал как описано в этой статье http://www.codeproject.com/KB/system/virtu...k-tutorial.aspx для того что бы система считала его сетевым думаю при создании устройства нужно поправить флажки. Зачем именно сетевой если не секрет? Монтирование шары с локалхоста не поможет?
|
|||
|
||||
| nmn |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 593 Регистрация: 26.11.2005 Репутация: нет Всего: 1 |
идея вообще такая: нужно дать единый интерфейс для доступа к файлам по http, т.е. есть сервер, он умеет отдавать файлы по http, и я хочу сделать прослойку в виде виртуального диска
может есть другие подобные варианты? |
|||
|
||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 40 Всего: 223 |
Угу, врезаться в сервер. Или воспользоваться его API, они точно должны быть, т.к. даже самый простой http сервер (если он конечно не совсем игрушечный) умеет поддерживать CGI. А не самые простые имеют кроме этого и кучу других возможностей.
Какой сервер? |
|||
|
||||
| Sartorius |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1568 Регистрация: 18.7.2006 Где: Ivory tower Репутация: 1 Всего: 37 |
nmn, виртуальный диск или виртуальная файловая система предполагают random access к файлам. HTTP сервер реализует только GET и PUT. Можешь сделать расширение к explorer, что бы юзеру эти файлы показать. Но лучше если есть доступ к серверу поднять NFS на нем.
Это сообщение отредактировал(а) Sartorius - 7.9.2010, 13:33 |
|||
|
||||
| nmn |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 593 Регистрация: 26.11.2005 Репутация: нет Всего: 1 |
ну придется делать кэширование, например создавать sparse файл локально и потом уже работать с ним постепенно подгружая необходимые части что имеете ввиду когда говорите API? на текущий момент их нет, а доступа к серверу тоже нет |
|||
|
||||
| Sartorius |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1568 Регистрация: 18.7.2006 Где: Ivory tower Репутация: 1 Всего: 37 |
Тогда проще всего ИМХО драйвер виртуальной файловой системы написать и в нем реализовать все что нужно. Т.к. HTTP не поддерживает lock файлов не совсем понятно как корректно одновременный доступ обеспечить для многих клиентов.
|
|||
|
||||
| borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 6 Всего: 135 |
WebDrive - утилита, делающая из ftp-сервера сетевой диск. Я пользовался - мне не понравилось. Ну оооочень медленная.
Hanachi - позволяет при помощи VPN-сети делать доступ с одного компьютера на другой по статическим ip-адресам. -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 40 Всего: 223 |
||||
|
||||
| nmn |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 593 Регистрация: 26.11.2005 Репутация: нет Всего: 1 |
||||
|
||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 40 Всего: 223 |
||||
|
||||
| nmn |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 593 Регистрация: 26.11.2005 Репутация: нет Всего: 1 |
но мне от этого ни холодно не жарко, доступа к серверу все равно нет кроме как по http
|
|||
|
||||
| nmn |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 593 Регистрация: 26.11.2005 Репутация: нет Всего: 1 |
||||
|
||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 40 Всего: 223 |
||||
|
||||
| nmn |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 593 Регистрация: 26.11.2005 Репутация: нет Всего: 1 |
||||
|
||||
| jonie |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 7 Всего: 118 |
webDAV для такихцелей существует относительно давно имхо... и виндовый эксплорер умеет работать с ним. А в общем да, придется вам делать вирт fs....
-------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 40 Всего: 223 |
Не понял, а твой первоначальный вопрос -
Этот диск тоже будет создаваться по http? А, кажется понял - вам надо сделать локальную (у пользователя) fs, которая бы отражала содержимое удаленного сервера по http? Тогда можете начать с Dokan (для Win) или fuse (или Linux) Это сообщение отредактировал(а) xvr - 8.9.2010, 09:47 |
|||
|
||||
| nmn |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 593 Регистрация: 26.11.2005 Репутация: нет Всего: 1 |
||||
|
||||
| nmn |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 593 Регистрация: 26.11.2005 Репутация: нет Всего: 1 |
где можно посмотреть про драйвера в windows, так чтобы хоть немного въехать в предмет?
|
|||
|
||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 40 Всего: 223 |
Скачать WDK c MS. Там в комплекте должны быть доки и примеры. Да и в самом MSDN все есть. PS. Чем Dokan не устроил? |
|||
|
||||
| nmn |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 593 Регистрация: 26.11.2005 Репутация: нет Всего: 1 |
устроил, там даже .net интерфейс есть, но все таки интересно как это все связано
пока вопрос такой там есть реализация интерфейса в которой все действия файловой системы выполняются, это происходит в одном потоке или может быть создано несколько потоков? Это сообщение отредактировал(а) nmn - 8.9.2010, 15:21 |
|||
|
||||
| xvr |
|
||||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 40 Всего: 223 |
Тогда смотреть сорцы и читать MSDN
readme от Dokan:
|
||||||
|
|||||||
| nmn |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 593 Регистрация: 26.11.2005 Репутация: нет Всего: 1 |
как то получается, что если буду закрывать файл в Cleanup то будут проблемы, если же буду закрывать файл в CloseFile, то тоже будут проблемы.... |
|||
|
||||
| xvr |
|
||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 40 Всего: 223 |
Закрывать явно надо в Cleanup. А что касается замечания про 'memory mapped file' то это очень странно - Cleanup вызывается после закрытия ПОСЛЕДНЕЙ ссылки на HANDLE файла, а т.к. memory mapped file держит такую ссылку сам, то после Cleanup уже операции Read/Write на этом файле запланированны быть не могут. Единственная возможность получить Read/Write ПОСЛЕ Cleanup это поставить их в очередь ПОСЛЕ закрытия последнего HANDLE'а, но ДО собственно исполнения Cleanup'а (что похоже возможно только на MP машине) - но в таком случае Dokan должен был бы сам заканселить все IRP относящиеся к файлу, которые находятся в 'полете' (это стандартное действие на Cleanup). Видимо он этого не делает :( Закрывайте файл в Cleanup и возвращайте ошибки, если что то свалится с тем же HANDLE в файловую операцию после этого |
||||
|
|||||
![]()
|
| Правила форума "C/C++: Системное программирование и WinAPI" | |
|
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |