ISO file system mounted as directory, possible?

Hello

I’d like to know whether it is possible to mount an ISO file as a directory and not a drive (like D:, for example). In essence it’d remain a file, but in Explorer one could access it as a folder and see and modify its contents as well.

Is it possible?

If it is, a file system filter driver would do the trick or would it be necessary a brand new file system? And can someone point me in the right direction?

Any help would be greatly appreciated. Thanks.

Well, yes. Take a look at the mountvol.exe tool that ships with windows.
Also look at the page “Mounted Folders” in msdn (
http://msdn.microsoft.com/en-us/library/windows/desktop/aa365733(v=vs.85).aspx).
That page even mentions an ISO filesystem.

Thanks,
Alex.

On Fri, May 2, 2014 at 12:54 PM, wrote:

> Hello
>
> I’d like to know whether it is possible to mount an ISO file as a
> directory and not a drive (like D:, for example). In essence it’d remain a
> file, but in Explorer one could access it as a folder and see and modify
> its contents as well.
>
> Is it possible?
>
> If it is, a file system filter driver would do the trick or would it be
> necessary a brand new file system? And can someone point me in the right
> direction?
>
> Any help would be greatly appreciated. Thanks.
>
> —
> NTFSD is sponsored by OSR
>
> OSR is hiring!! Info at http://www.osr.com/careers
>
> For our schedule of debugging and file system seminars visit:
> http://www.osr.com/seminars
>
> To unsubscribe, visit the List Server section of OSR Online at
> http://www.osronline.com/page.cfm?name=ListServer
>

Thanks!

But it seems that for the ISO file be mounted (mapped) to a folder, it needs to be already mounted to a volume.

Is there a way to mount the ISO file to a folder without having to mount the ISO to a volume beforehand?

You could try to find an explorer extension… But i think the term
“mounting” sort of implies a volume… Anyway, the volume mounting thing is
the most generic approach, otherwise you’ll have to deal with specific
applications (like the explorer extension).

What do you have against volumes anyway :)?

Thanks,
Alex.

On Fri, May 2, 2014 at 1:50 PM, wrote:

> Thanks!
>
> But it seems that for the ISO file be mounted (mapped) to a folder, it
> needs to be already mounted to a volume.
>
> Is there a way to mount the ISO file to a folder without having to mount
> the ISO to a volume beforehand?
>
> —
> NTFSD is sponsored by OSR
>
> OSR is hiring!! Info at http://www.osr.com/careers
>
> For our schedule of debugging and file system seminars visit:
> http://www.osr.com/seminars
>
> To unsubscribe, visit the List Server section of OSR Online at
> http://www.osronline.com/page.cfm?name=ListServer
>

Well, here is the scenario:

I got 100s of ISOs in my storage and I’d like a natural and quick way to visualize and access files inside them, like a simple double click, the same way “compressed folders” work. But this would have to be made available to others programs as well, not only Explorer.

I think compressed folders is also an explorer only thing …

I’m not aware on any limit on the number of volumes on a system, so the
100s of ISOs doesn’t worry me (but maybe it should, I just don’t know).

If you want something more involved you could write a simple minifilter
that could detect access to certain paths (possibly using reparse points)
and then, using a user-mode service, mounts the ISOs on-demand and
redirects the CREATE.

I can’t recommend a better approach unless you describe your problem in
some more detail. Personally, I’d just use scripts to mount everything and
see what happens.

Thanks,
Alex.

On Fri, May 2, 2014 at 2:14 PM, wrote:

> Well, here is the scenario:
>
> I got 100s of ISOs in my storage and I’d like a natural and quick way to
> visualize and access files inside them, like a simple double click, the
> same way “compressed folders” work. But this would have to be made
> available to others programs as well, not only Explorer.
>
> —
> NTFSD is sponsored by OSR
>
> OSR is hiring!! Info at http://www.osr.com/careers
>
> For our schedule of debugging and file system seminars visit:
> http://www.osr.com/seminars
>
> To unsubscribe, visit the List Server section of OSR Online at
> http://www.osronline.com/page.cfm?name=ListServer
>

Actually someone pointed out offline (thanks!) that perhaps I shouldn’t
recommend such a solution, since reparse makes life complicated for
filters, especially cross-volume reparses like my proposed solution. So
scratch that idea… Unfortunately, to achieve something similar would
probably require an implementation with SFO (shadow file objects) and
that’s a pretty big project…

Thanks,
Alex.

On Fri, May 2, 2014 at 2:34 PM, Alex Carp wrote:

> I think compressed folders is also an explorer only thing …
>
> I’m not aware on any limit on the number of volumes on a system, so the
> 100s of ISOs doesn’t worry me (but maybe it should, I just don’t know).
>
> If you want something more involved you could write a simple minifilter
> that could detect access to certain paths (possibly using reparse points)
> and then, using a user-mode service, mounts the ISOs on-demand and
> redirects the CREATE.
>
> I can’t recommend a better approach unless you describe your problem in
> some more detail. Personally, I’d just use scripts to mount everything and
> see what happens.
>
> Thanks,
> Alex.
>
>
> On Fri, May 2, 2014 at 2:14 PM, wrote:
>
>> Well, here is the scenario:
>>
>> I got 100s of ISOs in my storage and I’d like a natural and quick way to
>> visualize and access files inside them, like a simple double click, the
>> same way “compressed folders” work. But this would have to be made
>> available to others programs as well, not only Explorer.
>>
>> —
>> NTFSD is sponsored by OSR
>>
>> OSR is hiring!! Info at http://www.osr.com/careers
>>
>> For our schedule of debugging and file system seminars visit:
>> http://www.osr.com/seminars
>>
>> To unsubscribe, visit the List Server section of OSR Online at
>> http://www.osronline.com/page.cfm?name=ListServer
>>
>
>

Interesting… I was wondering about compressed folders… do you have any idea of how it is implemented? Because there needs to be 2 instances of the zip file at the same time, one is the real zip with the compressed data, and the other is an abstraction of the uncompressed files into a regular folder (with possibly several instances of the inner files). How to make a folder and a file refer to the same thing?

There isn’t much more detail than what I’ve already mentioned, aside from I’m new to driver development and I want to take this opportunity to learn and hopefully expand this concept to other image formats.

Thank you for you advice, Alex. This community is great. I’ll read some more stuff and report back when I’ve something more concrete. I’ll read something about this SFO you mentioned too.

Someone at one point did a zip file system. I can’t remember if it was a
file system filter or a file system.

Don Burn
Windows Filesystem and Driver Consulting
Website: http://www.windrvr.com
Blog: http://msmvps.com/blogs/WinDrvr

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of xxxxx@gmail.com
Sent: Friday, May 02, 2014 8:33 PM
To: Windows File Systems Devs Interest List
Subject: RE:[ntfsd] ISO file system mounted as directory, possible?

Interesting… I was wondering about compressed folders… do you have any
idea of how it is implemented? Because there needs to be 2 instances of the
zip file at the same time, one is the real zip with the compressed data, and
the other is an abstraction of the uncompressed files into a regular folder
(with possibly several instances of the inner files). How to make a folder
and a file refer to the same thing?

There isn’t much more detail than what I’ve already mentioned, aside from
I’m new to driver development and I want to take this opportunity to learn
and hopefully expand this concept to other image formats.

Thank you for you advice, Alex. This community is great. I’ll read some more
stuff and report back when I’ve something more concrete. I’ll read something
about this SFO you mentioned too.


NTFSD is sponsored by OSR

OSR is hiring!! Info at http://www.osr.com/careers

For our schedule of debugging and file system seminars visit:
http://www.osr.com/seminars

To unsubscribe, visit the List Server section of OSR Online at
http://www.osronline.com/page.cfm?name=ListServer

> Interesting… I was wondering about compressed folders… do you have any

idea of how it is implemented? Because there needs to be 2 instances of
the zip file at the same time, one is the real zip with the compressed
data, and the other is an abstraction of the uncompressed files into a
regular folder (with possibly several instances of the inner files). How
to make a folder and a file refer to the same thing?

No, it only needs one. At the Explorer level, there are just Things.
Things of a specific type, as determined by your Explorer Extension,
become activated, such as by double-clicking on them, and one of the
actions you can take is to look inside your Thing and display
subcomponents. Note that “Thing” is a placeholder for your specific type.
Explorer extensions are very complex and poorly-documented pieces of
code. And while Explorer paradigms like drag-and-drop are supported, you
can’t necessariky double-click a SubThing and have it take a specific
action, such as running a .exe or allowing Word to open a .doc file; you
will usually be advised that you need to move the SubThing to a real file
location.

A file system, on the other hand abstracts a lot of the Thingness of the
Thing, and, for example, might well let you read and write a SubThing,
because it implements all the file system operations necessary toi
implement the file and directory actions on Things and their SubThings.
So if you just want to point to a .exe in your ISO image and double-click
it to run it, it has to look like a real file, so that segments can be
mapped, etc.

You would not necessarily want to support Write operations if you want to
properly emulate a CD-ROM or DVD, but you would have to support read,
random access, and segment mapping. If the images are compressed, you
have some fascinating problems determinig where the bytes at offset N
really appear, and uncompressing them.

I vaguely recall a company that had a product that did this; I have no
idea if they still exist. I think the name was “Pegasus”.
joe

There isn’t much more detail than what I’ve already mentioned, aside from
I’m new to driver development and I want to take this opportunity to learn
and hopefully expand this concept to other image formats.

Thank you for you advice, Alex. This community is great. I’ll read some
more stuff and report back when I’ve something more concrete. I’ll read
something about this SFO you mentioned too.


NTFSD is sponsored by OSR

OSR is hiring!! Info at http://www.osr.com/careers

For our schedule of debugging and file system seminars visit:
http://www.osr.com/seminars

To unsubscribe, visit the List Server section of OSR Online at
http://www.osronline.com/page.cfm?name=ListServer

One thing I should also like to mention is that the complete source for
CDFS is available from Microsoft in the WDK (\src\filesys\cdfs).

Thanks,
Alex.

On Sat, May 3, 2014 at 7:12 PM, wrote:

> > Interesting… I was wondering about compressed folders… do you have
> any
> > idea of how it is implemented? Because there needs to be 2 instances of
> > the zip file at the same time, one is the real zip with the compressed
> > data, and the other is an abstraction of the uncompressed files into a
> > regular folder (with possibly several instances of the inner files). How
> > to make a folder and a file refer to the same thing?
>
> No, it only needs one. At the Explorer level, there are just Things.
> Things of a specific type, as determined by your Explorer Extension,
> become activated, such as by double-clicking on them, and one of the
> actions you can take is to look inside your Thing and display
> subcomponents. Note that “Thing” is a placeholder for your specific type.
> Explorer extensions are very complex and poorly-documented pieces of
> code. And while Explorer paradigms like drag-and-drop are supported, you
> can’t necessariky double-click a SubThing and have it take a specific
> action, such as running a .exe or allowing Word to open a .doc file; you
> will usually be advised that you need to move the SubThing to a real file
> location.
>
> A file system, on the other hand abstracts a lot of the Thingness of the
> Thing, and, for example, might well let you read and write a SubThing,
> because it implements all the file system operations necessary toi
> implement the file and directory actions on Things and their SubThings.
> So if you just want to point to a .exe in your ISO image and double-click
> it to run it, it has to look like a real file, so that segments can be
> mapped, etc.
>
> You would not necessarily want to support Write operations if you want to
> properly emulate a CD-ROM or DVD, but you would have to support read,
> random access, and segment mapping. If the images are compressed, you
> have some fascinating problems determinig where the bytes at offset N
> really appear, and uncompressing them.
>
> I vaguely recall a company that had a product that did this; I have no
> idea if they still exist. I think the name was “Pegasus”.
> joe
>
> >
> > There isn’t much more detail than what I’ve already mentioned, aside from
> > I’m new to driver development and I want to take this opportunity to
> learn
> > and hopefully expand this concept to other image formats.
> >
> > Thank you for you advice, Alex. This community is great. I’ll read some
> > more stuff and report back when I’ve something more concrete. I’ll read
> > something about this SFO you mentioned too.
> >
> > —
> > NTFSD is sponsored by OSR
> >
> > OSR is hiring!! Info at http://www.osr.com/careers
> >
> > For our schedule of debugging and file system seminars visit:
> > http://www.osr.com/seminars
> >
> > To unsubscribe, visit the List Server section of OSR Online at
> > http://www.osronline.com/page.cfm?name=ListServer
> >
>
>
>
> —
> NTFSD is sponsored by OSR
>
> OSR is hiring!! Info at http://www.osr.com/careers
>
> For our schedule of debugging and file system seminars visit:
> http://www.osr.com/seminars
>
> To unsubscribe, visit the List Server section of OSR Online at
> http://www.osronline.com/page.cfm?name=ListServer
>

Right now I’m busy with my job, but I’ve been studying the WDK examples and reading a lot. I’m trying to determine what would be the best path I could follow. When I have developed some prototype I’ll report back.

And here is just something I’ve in mind: is it possible to “subvert” the concept of files and directories at the file system (filter perhaps) level to my pleasing? I mean, for example, add functionality to have a file transformed into a directory or vice versa somehow or create a file link (not a really a standard link, but a regular file) pointing to a directory?

Thanks a lot for the info everybody, it’s been really helpful!

If you are taking ownership of the objects then you can expose them as
you want. That said, the more ‘out of the box’ design you implement, the
more work, in general, it will require.

Pete

On 5/7/2014 8:02 AM, xxxxx@gmail.com wrote:

Right now I’m busy with my job, but I’ve been studying the WDK examples and reading a lot. I’m trying to determine what would be the best path I could follow. When I have developed some prototype I’ll report back.

And here is just something I’ve in mind: is it possible to “subvert” the concept of files and directories at the file system (filter perhaps) level to my pleasing? I mean, for example, add functionality to have a file transformed into a directory or vice versa somehow or create a file link (not a really a standard link, but a regular file) pointing to a directory?

Thanks a lot for the info everybody, it’s been really helpful!


NTFSD is sponsored by OSR

OSR is hiring!! Info at http://www.osr.com/careers

For our schedule of debugging and file system seminars visit:
http://www.osr.com/seminars

To unsubscribe, visit the List Server section of OSR Online at http://www.osronline.com/page.cfm?name=ListServer


Kernel Drivers
Windows File System and Device Driver Consulting
www.KernelDrivers.com
866.263.9295

What exactly do you mean by “taking ownership of the objects” in that case? Can you advise a MSDN link or a Google query?

Thanks

You would implement a layered file system if you are sitting above an
existing file system or a full file system for your own volumes. In your
case you would leverage an existing file system such as NTFS and
‘insert’ directories or files which exhibit the behavior that you
require. These pseudo-files or directories would be ‘owned’ by your
filter driver meaning that you establish the FsContext and FsContext2
pointers, the SOPs (CM/MM integration), etc. By doing this, you own
these file objects and you handle all requests against these file
objects, no requests for these objects can be passed to NTFS or it will
crash … it does not recognize the file objects since you took
ownership of them.

Note that implementing a layer FS is a long term project, 6+
person-months of effort if you know what is going on.

Pete

On 5/7/2014 1:44 PM, xxxxx@gmail.com wrote:

What exactly do you mean by “taking ownership of the objects” in that case? Can you advise a MSDN link or a Google query?

Thanks


NTFSD is sponsored by OSR

OSR is hiring!! Info at http://www.osr.com/careers

For our schedule of debugging and file system seminars visit:
http://www.osr.com/seminars

To unsubscribe, visit the List Server section of OSR Online at http://www.osronline.com/page.cfm?name=ListServer


Kernel Drivers
Windows File System and Device Driver Consulting
www.KernelDrivers.com
866.263.9295