Dokan

user mode file system for windows    >>Japanese version

Dokan library 0.3.4 released

June 8th, 2008 in Dokan

Dokan library 0.3.4 is now released

Dokan library is a user-mode file system for Windows.

I added an automatic unmount feature when dokan.dll is unload. I recommend you not to relay on this feature, file sytem should do unmount when file system exits.
I also added keep alive to check user-mode file system is alive. When you set TRUE on DokanOptions->UseKeepAlive, dokan library automatically unmounts 15 seconds after user-mode file system hanged up.

Changes from 0.3.2
- Added automatic unmount when dll is unloaded
- Added keep alive to check user-mode file system is alive
- Added multiple sessions
- Fixed BSOD when write operations are canceled by timeout
- Fixed the number of max thread in user-mode
- Many refactorings

I changed the domain name to dokan-dev.net.

12 Responses to “Dokan library 0.3.4 released”

  • Peter
    June 9th, 2008 at 4:29 pm

    hi

    you’re doing great work! automatic unmounting will be very useful during development.

    Peter

  • Sebastian
    June 17th, 2008 at 10:51 pm

    Hi Hiroki,

    I’m having a little issue under Win Vista. My Dokan.NET application worked for a little while, until I had to reboot yesterday. Now, when I start my app, its window shows, but the “Dokan drive (N:)” doesn’t show when I navigate to “Computer”.

    Running “DebugView” revealed the following message on startup:

    [3908] Dokan Error: CreatFile Failed : 5

    When I then close my app, DebugView catches the following messages:

    [3908] send release
    [3908] Dokan Error: Failed to open \\.\n: with code 2
    [3908] Failed to unmount n:
    [3908] failed to connect DokanMounter service: access denied
    [3908] send release
    [3908] Dokan Error: Failed to open \\.\n: with code 2
    [3908] Failed to unmount n:
    [3908] failed to connect DokanMounter service: access denied

    Do you have any idea, how I might fix this issue?

    Regards

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

    Hello, Sebastian

    Please check return value of DokanMain. I think your file system failed to mount drive.

  • Sebastian
    June 18th, 2008 at 8:01 pm

    Hi Hiroki,

    the return value is “-3″. If I’m correct, Dokan is unable to install the driver?

  • Sebastian
    June 18th, 2008 at 8:55 pm

    A little additonal notice…..I just tried running my application as Administrator and that works fine. Possibly a security/permission problem of the Dokan mounter service?

  • naguine
    June 20th, 2008 at 12:42 am

    Hi,
    i attempted to make a simple network
    file system with Dokan, the code and
    precompiled binaries are given on
    “my website”. It is just a toy example.
    It is by no means complete.
    There are two programs,
    one client and one server. The
    server just sits somewhere on the net,
    and the client contacts it and mount
    the filesystem. The server keeps files
    in RAM, and can mount a directory
    in read only.
    The client is in C and the server in
    Ocaml. There is a kind of “protocol
    compiler” which can output C and Ocaml
    code for parsing simple user-definable
    protocol messages. But don’t waste
    too much time looking for the doc :)
    Thanks
    P.S. : Hiroki, what do you think
    about adding the Dokan thread number
    of the thread that is processing a
    request to the structure DOKAN_FILE_INFO ?

  • Sebastian
    June 23rd, 2008 at 10:17 pm

    Hi Hiroki,

    what registry keys would I need to check to find out whether Dokan library is installed properly?

    BTW….did you get a chance to reproduce my Vista-issue from above?

    Cheers,

    Sebastian

  • Hiroki
    June 24th, 2008 at 1:34 pm

    Hello, Sebastian

    > what registry keys would I need to check to find out whether
    > Dokan library is installed properly
    SSHFS installer checks the existence of dokan.dll.
    You may use registry key HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Dokan or DokanMounter.

    Administrator privilege is needed to communicate with Dokan driver. You need a manifest file for .NET application. I want to decrease the restriction of privilege, but I can’t figure out now hot to do.

  • Hiroki
    June 24th, 2008 at 2:02 pm

    Hello, naguine

    I can’t read OCaml but it sounds interesting.

    > what do you think about adding the Dokan thread number
    > of the thread that is processing a request to the structure DOKAN_FILE_INFO?
    You can use GetCurrentThreadId Windows API if you want to know the current processing thread id.
    Why you need the Dokan thread number?

  • naguine
    June 25th, 2008 at 12:35 am

    Hi Hiroki,
    The interesting thing about
    the Dokan thread id instead of
    the Windows one is that it is
    known to lie in the range
    [0, ThreadCount - 1], so that
    making structures indexed on this
    id is easier in C :)
    cheers

  • Michael
    June 28th, 2008 at 8:43 pm

    Hi Hiroki,
    Dokan is really nice library, free FUSE for windows is wanted by many people. Keep on it!

    But, of course, I’m writing to complain :)

    I’ve found an issue when user wants to delete a file or a directory. If deletion is performing without moving to trash bin - everything is ok. But when deletion has default behaviour (moving to trash) - something strange happen and handler-function is called twice, and result of second call (yep, an error code) is returned to calling process.

    Fixes for it will be great. Thanks anyway! :)

  • Hiroki
    July 7th, 2008 at 3:41 pm

    Hello, Michael

    Thank you for your information.
    That problem is still under investigation.

Leave a Reply

*
To prove that you're not a bot, enter this code
Anti-Spam Image