Dokan

user mode file system for windows    >>Japanese version

Dokan.NET 0.1.8 released

June 10th, 2008 in .NET

Dokan.NET 0.1.8 is now released.

Dokan.NET is a .NET binding of user-mode file system library Dokan. You can write your own Windows file system in C#, VB.NET…

Changes from 0.1.7
- Added UseKeepAlive option to DokanOptions
- Added some error constants

Domain name is changed to dokan-dev.net

27 Responses to “Dokan.NET 0.1.8 released”

  • dvkch
    June 12th, 2008 at 4:09 am

    Hi
    I couldn’t see the DeviceIO method in DokanOperation interface. Will it be added in a next release or is it too hard ?

    thanks, again, it’s a very good work !

  • Hiroki
    June 12th, 2008 at 3:15 pm

    Hello,

    I read documents about DeviceIoControl but I have no idea how to be used by file recovery softwares. I think they phisicaly access to disk drive, and not to file system. Do you know what control codes are needed for file system to support those softwares?

  • dvkch
    June 12th, 2008 at 5:44 pm

    No, I don’t know. Sorry. But i’m actualy trying to make an app to access MTP devices with a filesystem and not in shell namespace extension. I’ve seen in the main interface in the MTP SDK that a method exists to directly execute a DeviceIO command on the player. I think if I just forward commands from your virtual filesystem directly to the player I’ll get a direct access to it. That’s why i’d need this to be implemented if it’s possible.
    Thanks.
    (ps : for recovery software, some of them are able to use the existing filesystem to recover deleted files. i think they do it via this method to.)

  • Hiroki
    June 13th, 2008 at 2:11 pm

    Hello,
    I understand what you want to do, but I still have some questions.
    I think the flow of access is an app > Your file system > MTP > player, and your file system accesses a player via MTP SDK. Is this right? In my understanding, MTP calls DeviceIoControl to the player not file system.

    Thanks,

  • dvkch
    June 13th, 2008 at 6:26 pm

    Not exactly.
    MTP is a set of commands (an extension of PTP) which are executed by the player itself which return some data after. The DeviceIoControl is just one of these commands and may help me to make a FS easily, but I don’t know if it’ll work. I’d just like to test, but i can’t without your help :p . Thanks

  • Sebastian
    June 14th, 2008 at 9:34 pm

    Hi Hiroki,

    I have yet another problem :-) I am getting a BSOD when delaying the ReadFile function.
    The scenario is as follows: I have a remote file, which I am opening with local program. As long as I just use the Windows Explorer to browse the remote files, but as soon as I try to open the remote file with e.g. Photoshop I get the BSOD. I guess it’s because I cannot hand back the picture to Photoshop right away but have to download it to a local temp folder first. Could this delay cause the BSOD?

    Regards

  • Sebastian
    June 14th, 2008 at 9:56 pm

    Oh….and where did the comments-feeds go? They were very useful for following up on discussions/responses. Could you please bring them back?

  • Hiroki
    June 15th, 2008 at 1:55 am

    Hello, Sebastian
    Could you send me the crush dump file? Is is located under C:\Windows\Minidump

  • Hiroki
    June 15th, 2008 at 2:28 am

    Hi, Sebastian
    I added comments feed bottom of pages.

  • Sebastian
    June 15th, 2008 at 2:33 am

    Hi Hiroki,

    unfortunately, there is no such file under C:\Windows\Minidump. The directory is empty. I checked my system settings for “Startup and Recovery” and they seem to be right (Small dump directory: %SystemRoot%\Minidump).
    The exact BSOD message is as follows:

    STOP:c000021a {Fatal System Error}
    The Windows subsystem process terminated unexpectedly with a status of 0×0000006 (0x7c921a9d 0x0156f264).
    The system has been shut down.

  • Hiroki
    June 15th, 2008 at 3:05 am

    Hi, Sebastian
    Thank you for your comments, but I can’t fix bug without crash dump file. When you find it, please mail me.

  • Peter
    June 18th, 2008 at 4:40 pm

    Hi!

    i’m getting GetFileInformation calls with \\ as an argument, is this normal? \\ is no file, is the correct behavoir to return -1?

  • Hiroki
    June 18th, 2008 at 5:41 pm

    Hello, Peter

    Explorer or other programs are trying to open root directory(root of drive). It should be succeed.

  • Peter
    June 18th, 2008 at 6:48 pm

    thanks for the fast reply, dokan is really cool!!! I think something like a wiki about Dokan would be nice. So we could collect examples and usefull information about Dokan and filesystems.

  • dvkch
    June 19th, 2008 at 4:32 am

    Any new idea about the DeviceIOControl ?
    i’m sorry if i ask it everyday, just tell me if it won’t be implemented.
    thanks :)

  • Hiroki
    June 19th, 2008 at 2:37 pm

    Hello, dvkch

    I’d like to support IO control codes on Dokan if they are really needed and used.
    I think handling specific IO control codes is not so hard to implement. But it is not easy to handle generic code types because the ways to use buffer are different for each control codes. If supporting IO control codes make Dokan unstable, I don’t want to add it.
    I’ll check it is possible or not this weekend.

    BTW, I can’t still understand MTP. As far as I read MTP documentation, MTP is a device and not a file system. I found that MTP is implemented as user-mode USB storage driver which is not seen as a drive.

    You are trying to make a MTP device using Dokan library? or mount a MTV device as a drive? Where device control code comes from to your file system?

    Sorry for many questions, I want to figure out what you really want to do and what can I do for it.

  • Sebastian
    June 30th, 2008 at 2:02 am

    Hi Hiroki,

    I have yet another question :-)

    The Dokan library doc says for the the parameter “DokanFileInfo info” of the CreateFile function:
    “Context :
    a specific value assigned by the file system application. File system application can freely use this variable to store values that are constant in a file access session (the period from CreateFile to CloseFile) such as file handle, etc.”

    As far as I understand it I can assign info.Context to a value of my choice (e.g. a bool value) in the CreateFile function. This value will be available in all called file-system functions until the file is closed, right?

    I tried that and it didn’t work. In CreateFile I do:

    if (File.Exists(localPath+filename))
    {
    bool existsOnlyRemote = false;
    info.Context = (object)existsOnlyRemote;
    }

    When I try to access info.Context in e.g. the ReadFile function afterwards, it is always null. How come?

    Regards,

    Sebastian

  • Hiroki
    June 30th, 2008 at 3:17 pm

    Hi, Sebastian

    It was Dokan.NET problem, I released new version of DokanNET. Please try it.

    Thanks,

  • dvkch
    July 10th, 2008 at 8:13 pm

    Sorry, i didn’t had an internet connection for a long time :/
    My purpose is to mount an MTP device as a drive via DokanLib. I understand that it’s not realy easy to manage generic codes for many reasons; althought i’ve seen a generic function model on the msdn page i sent you last time. But i don’t know which codes i have to handle, because the function in the IWMDMDevice structure is a generic one. I thought that if Windows was calling the same generic function for IO operation on your filesystem, i’ll just have to make a bridge to the MTP struct. Thanks

  • dvkch
    July 29th, 2008 at 4:44 am

    UP !

  • dvkch
    August 11th, 2008 at 1:33 am

    last try ….

  • Buy Yankee Candles Cheap
    March 1st, 2011 at 12:32 am

    Cheap Yankee Candles…

    [...]here are some links to sites that we link to because we think they are worth visiting[...]…

  • click here for yankee candles
    March 1st, 2011 at 10:36 pm

    Buy Yankee Candles at Half Off…

    [...]the time to read or visit the content or sites we have linked to below the[...]…

  • arizona tempe strategy planning jobs
    March 8th, 2011 at 10:28 am

    Big Job Site…

    [...]while the sites we link to below are completely unrelated to ours, we think they are worth a read, so have a look[...]…

  • Tubal Ligation Reversal
    May 19th, 2011 at 7:50 pm

    Awesome and interesting information and attractive post.
    Yes, the blog is very interesting and I really like.

  • Viagra Online
    June 25th, 2011 at 3:46 am

    Hi, listen, I’m pretty new on this blogosphere and Internet thing, so I don’t know if there’s a sort of “subscription” method that I can use in order to receive notifications of your new entries…? Thing is I enjoy reading your blog a lot and I’d like to be up to date with your posts!

  • new era hats
    July 14th, 2011 at 5:19 pm

    Thanks for your sharing….nice post