update README

This commit is contained in:
Bill Zissimopoulos 2022-06-12 17:39:23 +01:00
parent 91400babe0
commit e44cba033f

View File

@ -30,13 +30,13 @@
## Overview ## Overview
WinFsp is system software that provides runtime and development support for custom file systems on Windows computers. Typically any information or storage may be organized and presented as a file system via WinFsp, with the benefit being that the information can be accessed via the standand Windows file APIs by any Windows application. WinFsp is a platform that provides development and runtime support for custom file systems on Windows computers. Typically any information or storage may be organized and presented as a file system via WinFsp, with the benefit being that the information can be accessed via the standand Windows file APIs by any Windows application.
The core WinFsp consists of a kernel mode file system driver (FSD) and a user mode DLL that provides an API for developers. This API allows developers to handle Windows file system functions easily. For example, when an application attempts to open a file, WinFsp will call an `Open` function with the necessary information. The core WinFsp consists of a kernel mode file system driver (FSD) and a user mode DLL. The FSD interfaces with the Windows kernel and handles all interactions necessary to present itself as a file system driver. The DLL interfaces with the FSD and presents an API that can be used to handle file system functions. For example, when an application attempts to open a file, the file system receives an `Open` call with the necessary information.
The WinFsp package also includes development resources and additional tools to help with developing and managing user mode file systems. Using WinFsp to build a file system has many benefits:
## Benefits **Easy development**: Developing kernel mode file systems for Windows is a notoriously difficult task. WinFsp makes file system development relatively painless. This [Tutorial](doc/WinFsp-Tutorial.asciidoc) explains how to build a file system.
**Stability**: Stable software without any known kernel mode crashes, resource leaks or similar problems. WinFsp owes this stability to its [Design](doc/WinFsp-Design.asciidoc) and its rigorous [Testing Regime](doc/WinFsp-Testing.asciidoc). **Stability**: Stable software without any known kernel mode crashes, resource leaks or similar problems. WinFsp owes this stability to its [Design](doc/WinFsp-Design.asciidoc) and its rigorous [Testing Regime](doc/WinFsp-Testing.asciidoc).
@ -51,17 +51,7 @@ The WinFsp package also includes development resources and additional tools to h
**Wide support**: Supports Windows 7 to Windows 11 and the x86, x64 and ARM64 architectures. **Wide support**: Supports Windows 7 to Windows 11 and the x86, x64 and ARM64 architectures.
**Flexible API**: Flexible, comprehensive and easy to use API. This [Tutorial](doc/WinFsp-Tutorial.asciidoc) explains how to build a file system. **Flexible API**: Includes Native, FUSE2, FUSE3 and .NET API's.
- Native [API Reference](doc/WinFsp-API-winfsp.h.md)
- .NET layer for managed development. See [src/dotnet](src/dotnet)
- FUSE 2.8 compatibility layer: [fuse/fuse.h](inc/fuse/fuse.h)
- FUSE 3.2 compatibility layer: [fuse3/fuse.h](inc/fuse3/fuse.h)
- Wrapper libraries for other languages and environments also exist. See the [Known File Systems and File System Libraries](doc/Known-File-Systems.asciidoc) document.
**Shell integration**: Provides facilities to integrate user mode file systems with the Windows shell. See the [Service Architecture](doc/WinFsp-Service-Architecture.asciidoc) document. **Shell integration**: Provides facilities to integrate user mode file systems with the Windows shell. See the [Service Architecture](doc/WinFsp-Service-Architecture.asciidoc) document.
@ -73,23 +63,51 @@ The WinFsp package also includes development resources and additional tools to h
## Installation ## Installation
Download and run the [WinFsp installer](https://github.com/winfsp/winfsp/releases/latest). Download and run the [WinFsp installer](https://github.com/winfsp/winfsp/releases/latest). In the installer select the option to install the "Developer" files. These include the MEMFS sample file system, but also header and library files that let you develop your own user-mode file system.
In the installer select the option to install the developer files. These include the MEMFS sample file system, but also header and library files that let you develop your own user-mode file system.
You should not need to reboot, unless WinFsp was already running on your system.
<img src="doc/WinFsp-Tutorial/Installer.png" height="290"/> <img src="doc/WinFsp-Tutorial/Installer.png" height="290"/>
### Launch a file system for testing
You can test WinFsp by launching MEMFS from the command line:
```
billziss@xps ⟩ ~ ⟩ net use X: \\memfs64\test
The command completed successfully.
billziss@xps ⟩ ~ ⟩ X:
billziss@xps ⟩ X:\ ⟩ echo "hello world" > hello.txt
billziss@xps ⟩ X:\ ⟩ dir
Directory: X:\
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 6/12/2022 5:15 PM 28 hello.txt
billziss@xps ⟩ X:\ ⟩ type hello.txt
hello world
billziss@xps ⟩ X:\ ⟩ cd ~
billziss@xps ⟩ ~ ⟩ net use X: /delete
X: was deleted successfully.
```
MEMFS (and all file systems that use the WinFsp Launcher as documented in the [Service Architecture](doc/WinFsp-Service-Architecture.asciidoc) document) can also be launched from Explorer using the "Map Network Drive" functionality.
## Resources ## Resources
**Documentation**: **Documentation**:
- Project [wiki](https://github.com/winfsp/winfsp/wiki) (most up-to-date) - [Tutorial](doc/WinFsp-Tutorial.asciidoc)
- Project [website](https://winfsp.dev/doc/) - [API Reference](doc/WinFsp-API-winfsp.h.md)
**Discuss**: - [Project wiki](https://github.com/winfsp/winfsp/wiki)
**Discussion**:
- [WinFsp Google Group](https://groups.google.com/forum/#!forum/winfsp) - [WinFsp Google Group](https://groups.google.com/forum/#!forum/winfsp)