Dokan

user mode file system for windows    >>Japanese version

Dokan library 0.3.7 released

August 20th, 2008 in Dokan

Dokan library 0.3.7 is released.

Dokan library is a user mode file system library for Windows.
Now Dokan supports Vista x64 and Windows2003 Server!

Changes from 0.3.6
- Supported Windows 2003 and Vista x64
- Changed Dokan installer (DokanInstall32.msi for WindowsXP,2003,Vista x86 and DokanInstall64.msi for Vista x64)

Code Signing Certificate for 64bit drivers is supported by Infocraft Inc.

17 Responses to “Dokan library 0.3.7 released”

  • Lost Drive Blog » Dokan library 0.3.7 released
    August 20th, 2008 at 10:14 am

    [...] claser99: [...]

  • Cyril
    August 21st, 2008 at 10:14 pm

    Hiroki, you can get a free certificate at StartSSL (startssl.com), if you need to sign your code.

    What are the changes compared to previous version for basic x86 XP ?

  • Hiroki
    August 21st, 2008 at 11:29 pm

    Hi, Cyril

    I checked StartSSL site, but I couldn’t find free code singing certification. I think it is impossible for an individual person to get a code singing certification, it is only available for a company.

    I changed only for compile problems and installers, so there is no change for XP x86 version.

    BTW, your fuse4win is cool! I’ll try it later.

    Thanks,

  • BB
    August 22nd, 2008 at 1:38 am

    Hiroki,
    I can’t thank you enough! Looking forward to hacking away at this.

    -Brandon

  • Cyril
    August 22nd, 2008 at 7:39 pm

    Hi Hiroki,

    You can get a free certificate that is signed by StartSSL, meaning it’s valid in the chain of trust up to the root CA (StartSSL in this case).
    With this certificate, you get a private key with you can sign your code (signcode tool in OpenSSL, or from Microsoft).
    The information provided must match the website from which you’ve created the certificate (I guess dokan-dev.net for your case).

    When the user get the signed installation file, the installer will check the certificate (because it’s not a root cert, it will check all certificate up to StartSSL). Your certificate is valid for a year, so the installer will extract the object code signing certficate from your web site.

    If it’s too much assle to understand and setup, they provide a $24.9/yr fee to setup and maintain.

    Concerning fuse4win, it’s not my code, in fact I’ve found your site from this project.

  • Johan
    August 24th, 2008 at 7:45 am

    Couldn’t compile DokanNetMirror first but changed platform target to x86 instead of AnyCPU fixed it. Does this mean only the kernel driver is x64 and that the user mode component is still 32 bit?

  • Hiroki
    August 24th, 2008 at 10:55 am

    Hello, Johan

    > Does this mean only the kernel driver is x64 and that the user mode
    > component is still 32 bit?

    Yes, all other components than the driver are still 32bit applications.
    Do you need 64bit user mode applications?

  • Johan
    August 25th, 2008 at 4:46 am

    Hiroki,

    No, not at the moment. Just wanted to give feedback if someone else had the the same problem. Thanks for your excelent piece of engineering btw…

  • Peter
    August 26th, 2008 at 12:40 am

    Hi
    I have a Question regarding CloseFile.

    I am trying to implement locking in my filesystem.

    When I use c#’s File.WriteAllText()

    I get these calls from Dokan.

    CreateFile: filename: \4Ahead\TestIns2\Hierachical\TestItem1_2705\Storage2\Test.txt ,Access: Read ,Mode: Create ,Options:None , Dokanid: 328

    WriteFile: filename: \4Ahead\TestIns2\Hierachical\TestItem1_2705\Storage2\Test.txt, infoDokan.DokanFileInfo , Dokanid: 328

    Cleanup: filename: \4Ahead\TestIns2\Hierachical\TestItem1_2705\Storage2\Test.txt , Dokanid: 328

    I’m missing the CloseFile,… or can i be sure that there will be no other calls from Dokanhandleid: 378 after Cleanup? I need to remove the lock of the file somewhere.

    Any Ideas?

    Peter

  • Andreas
    August 27th, 2008 at 12:41 am

    Hi all,

    I have been doing some development with Dokan recently. For some reason though I can no longer install the driver; I have just tried the most recent version but keep getting the same error:

    dokanctl.exe /i d
    Service isntalled
    failed to start service: 2
    Service start failed
    driver install failed

    Error 2 means ERROR_FILE_NOT_FOUND, which is the exact same error one would get if the sys file was missing from system32/drivers (which it is not in my case).

    I have been building the sources myself and running it and I was able to confirm that they run just fine on another machine I have. Is it possible that someone something got deleted during my previous tests? Does anyone have any ideas how to recover short of re-installing my machine?

    Thanks,

    Andreas

  • Andreas
    August 27th, 2008 at 12:52 am

    I was able to solve the problem by using the installer, then uninstalling and rebooting the machine. I had rebooted previously, which didn’t work. Looks like using the installer did the trick though!

    Thanks,

    Andreas

  • Mike
    August 28th, 2008 at 5:53 am

    Hi guys,

    I was hacking a bit on a file system and having problems after creating a file (or directory) in it via the right-click context menu (New>…):. After creating, Explorer shows another entry twice until I hit reload.

    My second problem: the mouse-hover box shows the correct file size, but the right-click context menu (Properties) shows only 0 bytes.

    Anybody seen this and solved it?

    Thanks, Mike

    Hiroki: keep up the great hacking. Dokan is really exciting.

  • Håkon
    September 8th, 2008 at 4:15 am

    Fantastic work Hiroki, been playing with your library trying to implement a file system in Python. A few questions:

    1) Is there a way to mount filesystems for all users, i.e. at startup? Currently, if I mount a filesystem and then log off, the filesystem is unmounted.

    2) Any plans to support ACL?

    3) How does the kernel driver interact with the cache manager? Is any caching done in the kernel, or do all caching have to be done in user mode?

    4) May I suggest that you add a forum to your site? It seems you’re rapidly gaining users, and it will probably get unwieldy to follow discussions in the comments.

  • Hiroki
    September 8th, 2008 at 11:44 pm

    Hello, Håkon

    1) Is there a way to mount filesystems for all users, i.e. at startup? Currently, if I
    mount a filesystem and then log off, the filesystem is unmounted.
    Dokan itself doesn’t support automatic mount. You need to implement yourself. If you run your problem as Windows Service, it’s running after logoff.

    2) Any plans to support ACL?
    Yes, I I have. I have gotten some requests for ACL.

    3) How does the kernel driver interact with the cache manager? Is any caching done in the kernel, or do all caching have to be done in user mode?
    Currently, Dokan doesn’t interract with the cache manager. I want to do in near future.

    4) May I suggest that you add a forum to your site? It seems you’re rapidly gaining users, and it will probably get unwieldy to follow discussions in the comments.
    Yes, now I’m hard to follow all comments. I use issues list to track the requests. http://code.google.com/p/dokan/issues/list

  • Hiroki
    September 8th, 2008 at 11:59 pm

    Hi, Peter
    Sorry for the late replay. As I mentioned in Dokan readme, you can’t ensure CloseFile is called. Please read the following explanation from Dokan readme

    Cleanup is invoked when the function CloseHandle in Windows API is executed. If the file system application stored file handle in the Context variable when the function CreateFile is invoked, this should be closed in the Cleanup function, not in CloseFile function. If the user application calls CloseHandle and subsequently open the same file, the CloseFile function of the file system application may not be invoked before the CreateFile API is called. This may cause sharing violation error. Note: when user uses memory mapped file, WriteFile or ReadFile function may be invoked after Cleanup in order to complete the I/O operations. The file system application should also properly work in this case.

  • Hal Williams
    September 11th, 2008 at 7:08 pm

    Nice software, Hirok.

    My main problem with the Dokan library is the fact that no one seems
    to be anxious to share source code of various attempts, successful or not, of various file systems using the open source Dokan library. It seems to me if more of this information was shared that everyone would be better off. For what it’s worth, my main interest is sshfs.

    Here’s a thought. I’ve put together a source code and make file package that is basically the “mirror.exe” program with one big exception. Before the first line of “mirror” is executed, the user is connected and logged into an sftp server via Putty. Thanks to the excellent, tried and true, open source Putty, I believe that everything, in terms of sftp, is built in and ready to go. Also, no other third party software is needed, no C#, OpenSSL, SSH, etc. For developers, only the Dokan library, the packaged Putty sftp code, and a C compiler. For the end user, only the Dokan library and *one* sshfs application… in other words, developers can concentrate on getting the Dokan library calls right.

    I see this as an open source “let’s get it right” project. I believe the benefits to the Dokan library project and to all interested developers would be enormous, regardless of what type of file system someone is trying to develop. I would not want to head this project up, but may want to participate.

    Hirok, don’t get me wrong, I am *not* trying to under-mind or replace your sshfs project. Also, I do not want to violate the license or spirit of the open source Putty project.

    Thoughts? Suggestions? Comments?

    Thank you,
    Hal Williams
    Williams Data Services

  • Hiroki
    September 17th, 2008 at 12:30 am

    Hello, Hal

    I’m very welcome you to take up our problems.
    I know some projects that use Dokan library, so I’ll wrap up in this page.

    Dokan SSHFS needs performance improvements. One of them is the speed of ssh
    connection. I use ShartSSH written in C#. If you use native code for ssh,
    you can get better performance. Another idea is cache. Dokan SSHFS caches property
    of files and file lists of directorys. It also need cache system for reading and writing.
    Windows Explorer agressively reads file and directorys recursively. I want to reduce
    those access.

Leave a Reply

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