Link to home
Start Free TrialLog in
Avatar of classmate
classmateFlag for Norway

asked on

Implementing a virtual disk

I want to make a virtual disk that has a set of extra functions specially designed for an application that i want to / am going to make.

I have not yet explored the windows API for documentation on this kind of work.

I'd like some professional advice, and an overview of the interface that i need to implement.


thanks

classmate
Avatar of robert_marquardt
robert_marquardt

A virtual disk cannot be made without the help of a driver. A driver cannot be written with Delphi.
I think the free Daemon tools should help you along. I do not know if source code is available, but at least you should be able to find more information.
Tell us how much and what sort of data needs to be stored on this disk.

If your needs are not too great then I may have a solution.
Maybe all you need is a data file that you can save,delete,replace and retrieve items from by name :-)
Hi all there, Gwena I want to hear your solution
ASKER CERTIFIED SOLUTION
Avatar of Gwena
Gwena

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of classmate

ASKER

Gwena:
>Maybe all you need is a data file that you can save,delete,replace and retrieve items from by name :-)

Nope ;-)


Paulb1989:
>http://www.appcontrols.com/manuals/diskcontrols/index.html?tdcvirtualdrives.htm

This link shows how to link a disk drive to a directory.
What i want is to make a disk that is independent of all existing file structures. Its purpose is to communicate with another system, giving the operating system a disk-like interface to the other system.


robert_marquardt:
>I think the free Daemon tools should help you along.
you wouldn't know where to begin to look for theese tools? is it microsoft, borland, something else?



SOLUTION
Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
>Entering "Daemon tools" gives you all the links you need.
Yes, but where do i find "Daemon tools" in the first place? Delphi? (i use D7) Microsoft's homepage? Windows accessories/control panel? Borland's Homepage? Experts-Exchange?

The design idea is related to handling special multi-user file access for special kinds of file based applications. The files will actually be stored in a specially designed database, but will have a outward interface like a disk with directories.

The design decision is "correct" since the idea as whole is based upon this way of doing it.


Sorry, Google. It is of course not a Delphi program though.

You may get away wiith implementing a virtual folder like "My Documents" (which only happens to be a real folder also).
AFAIK this is a Explorer/shell extension.
"Daemon tools" seems to have been using the desired approach to their solution. I couldn't find any source code though.

"virtual folders" : There is a chance that this will work, but i am not sure. It will have to be tested.

Still there will be a lot of implementation to do. Do you know how to write a shell extension in delphi? Above all, is it possible?

SOLUTION
Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Unfortunately one of the most interesting applications cannot relate to virtual folders. Folder names will always be converted to real folder names. So there has to be a virtual disk for this to work.



To Classmate,

This is what I found for myself (Super Cache II by SuperSpeed.com):
http://www.superspeed.com/desktop/supercache.php

Regards,
odissey1
Hi odissey1,

Seems like a nice solution for speeding up regular file management, but unfortunately not applicable in this case.

What i want is to create a new, reliable concept of teamworking by extending functionality in the file management mechanisms.

Actually i want a database (like interbase/firebird, MS SQL server, etc) to handle the actual, internal storage (not visible to users). This is because of reliable transaction mechanisms and multi user features. The virtual disk drive is just supposed to map disk access to a underlying system, that in turn accesses a database system for reading and writing.


Sounds idiotic. At least the idea to use a file system access as interface.
This is either WinFS which even MS failed on or something Subversion nicely handles already.
hi robert marquardt

The idea of using file system access, is to "fool" user applications to write data directly into a system that includes (among other things) user defined / user managed version handling. It could perhaps be defined like a team source development project say in MS SourceSafe, except that the files should be written directly into the handling system when files are saved in the development tool. And also be read directly from the system when loaded, of course.
The version handling tools would probably function differently from the Sourcesafe solution, though.

The basic idea is however to create a general teamwork tool that is as easy to MANAGE as possible. At first it has to be a multipurpose solution, but then different versions could eventually aim at different needs, different kinds of teams and different applications.



Subversion is a system or something i know nothing about - does it cover theese needs you think?



I do not think that this can be solved much simpler than WinFS. It definitely needs to write file system drivers.
Subversion is a CVS which means it handles versioning of files with the help of a SQL database.

My impression is that you try to do things the wrong way and on the wrong OS.
It is much simpler to implement a virtual file system on Linux.

I doubt that you understand what the tasks of a teamwork solution really are.
Maybe you should have a look at TortoiseSVN (http://tortoisesvn.tigris.org/). It is a Subversion client which integrates in the Windows Explorer.
robert_marquardt :


> i doubt that you understand what the tasks of a teamwork solution really are

I understand some but not all. I know there are nice working solutions on the market, serving huge projects in practice.

My object is to learn on the way. The task of writing a device driver could be a nice challenge since I never have done that before. Discovering if it could be used in the way outlined could also become a nice experience. And for all anyone knows, it could become a nice solution sometime in a far future, but that secondary to the experience process i will gain while trying.

I suspect that it would cost me disproportionate amount of money to get able to dig in to some of the advanced systems. I will try to take a closer look at those you've mentioned. All teamwork that i've been involved in has after all made use of simple tools with limited functionality.

Seems like the object of this q is a learning process after all ;-)

Hang on for more comments, you could earn points as i get wiser