Git Product home page Git Product logo

dokany's Introduction

Dokany

Build status Coverity Scan Build Status | Bounty PayPayl donate button | Average time to resolve an issue Percentage of issues still open

What is Dokan

When you want to create a new file system on Windows, other than FAT or NTFS, you need to develop a file system driver. Developing a device driver that works in kernel mode on windows is extremely technical. By using Dokan, you can create your own file systems very easily without writing device drivers. Dokan is similar to FUSE (Linux file system in user space) but works on Windows. Moreover dokany include a FUSE wrapper that help you to port your FUSE filesystems without changes

What is Dokany

Dokany is a fork of Dokan 0.6.0 with bug fixes, clean change history and updated to build with latest tools.

Because the original Dokan Legacy (< 0.6.0) project is no longer maintained.

Since version 0.8.0, dokany break dokan API compatibility. See Choose a version for more informations.

Signed x86 / x64 drivers are provided at each release.

Licensing

Dokan contains LGPL and MIT licensed programs.

  • user-mode library (dokan1.dll) LGPL
  • driver (dokan1.sys) LGPL
  • network library (dokannp1.dll) LGPL
  • fuse library (dokanfuse1.dll) LGPL
  • installer (DokanSetup.exe) LGPL
  • control program (dokanctl.exe) MIT
  • samples (mirror.c) MIT

For details, please check license files.

  • LGPL license.lgpl.txt
  • MIT license.mit.txt

You can obtain source files from https://dokan-dev.github.io

Environment

Dokan works on

  • Windows 10
  • Windows 8.1
  • Windows Server 2012 R2
  • Windows 8
  • Windows Server 2012
  • Windows 7

How it works

Dokan library contains a user mode DLL (dokan1.dll) and a kernel mode file system driver (dokan1.sys). Once Dokan file system driver is installed, you can create file systems which can be seen as normal file systems in Windows. The application that creates file systems using Dokan library is called File system application.

File operation requests from user programs (e.g., CreateFile, ReadFile, WriteFile, ...) will be sent to the Windows I/O subsystem (runs in kernel mode) which will subsequently forward the requests to the Dokan file system driver (dokan1.sys). By using functions provided by the Dokan user mode library (dokan1.dll), file system applications are able to register callback functions to the file system driver. The file system driver will invoke these callback routines in order to response to the requests it received. The results of the callback routines will be sent back to the user program.

For example, when Windows Explorer requests to open a directory, the OpenDirectory request will be sent to Dokan file system driver and the driver will invoke the OpenDirectory callback provided by the file system application. The results of this routine are sent back to Windows Explorer as the response to the OpenDirectory request. Therefore, the Dokan file system driver acts as a proxy between user programs and file system applications. The advantage of this approach is that it allows programmers to develop file systems in user mode which is safe and easy to debug.

To learn more about Dokan file system development, see the API documentation.

Build

In short, download and install the Visual Studio 2015 with SDK 10 & WDK 10

For details, see the build page.

Installation

For manual installation, see the installation page.

Contribute

You want Dokan to get better? Contribute!

Learn the code and suggest your changes on GitHub repository.

Detect defects and report them on GitHub issue tracker.

Ask and answer questions on Google discussion group.

dokany's People

Contributors

arekbulski avatar artskydj avatar canardos avatar justanotheranonymoususer avatar liryna avatar mamic avatar marinkobabic avatar ngg avatar nmlgc avatar rustyx avatar sherter avatar toksaitov avatar ufoczek avatar vmsrc avatar zzhiyi avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.