What is the Windows Projected File System?
Solution 1
Projected File System aka ProjFS is a feature similar to FUSE found on Linux (or to Dokan & WinFSP). It allows apps to create virtual file systems which appear indistinguishable from local folders, but their entire contents are generated "live" by the program. (In other words, you're seeing projections of files which might not be there.)
The primary use of ProjFS is Microsoft's "Git Virtual File System", an addon to the Git version management tool aimed at increasing its performance and reducing disk space usage when dealing with massive repositories. (Git was built for repositories containing just tens of thousands of files, such as Linux.git; but Microsoft have started using it internally for the Windows source repository, which is several orders of magnitude larger.)
Currently ProjFS doesn't seem to be publicly documented, but I expect that sooner or later third-party developers will figure out how to use it as a FUSE alternative for implementing such virtual filesystems as sshfs, ftpfs, and so on.
Note: Projected File System has nothing to do with Windows File Protection.
As noted in the comments, documentation is now available for the feature.
Solution 2
Windows Projected File System is not an alternative to FUSE or Dokan.
It appears to be similar to FUSE and Dokan at first glance, even using callbacks to populate the file list, and read data from files.
However, once you read a file, the projected file is replaced with a physical file on your hard disk, which will stay on the disk.
Canadian Luke
Updated on September 18, 2022Comments
-
Canadian Luke over 1 year
In the latest builds of Windows 10, there is a new feature, in Beta, called Windows Projected File System. I cannot find any information on Google, other than programming APIs that do not make sense to me.
What is it, and what kind of users would it be targeted for?
-
user253751 over 5 yearsSeveral orders of magnitude larger, to me, means Windows contains at least a billion source files. Is that accurate?
-
niutech over 5 yearsHow does WPFS differ from IFS?
-
nxnev over 5 years@user20574 According to GVFS website: "Windows operating system, which clocks in at roughly 300 GB (3.5 million files)". And a MS blog post: "the Windows code base is approximately 3.5M files and, when checked in to a Git repo, results in a repo of about 300GB".
-
user253751 over 5 yearsSo two orders of magnitude, then.
-
josh3736 over 5 years@niutech: IFS is an API for building kernel-mode filesystem drivers that can be dynamically loaded (as opposed to built in to the kernel itself). ProjFS is an API for building user-mode filesystem drivers (ie, drivers that run like a regular exe).
-
phuclv over 5 years@user20574 the Windows repo includes everything in MS like Office, Windows kernel, Windows tools, Visual Studio, Skype... and not only the kernel like Linux, so no wonder it'll be a lot bigger
-
user420603 over 5 years@phuclv citation needed. "Windows" includes a lot of stuff (that would be extra packages on Linux; think the entire GUI, Notepad, etc.), but I can't believe that the repo contains all of Microsoft's products.
-
Austin Burk over 5 yearsWOW! I've never heard of this, this is excellent!
-
plugwash over 5 yearsThe git virtual filesystem seems to be open-source, so even if there is no documentation there is effectively public example code.
-
phuclv over 5 years@RogerLipscombe probably "all MS products" is a a little bit exaggerated but according to MS's Gabe Aul That size is actually the entire OS repo. It includes Windows OneCore, Desktop, Mobile, HoloLens, Xbox, IOT, etc. Plus tools, and other code we ingest from feeds and store in our tree. It’s the full enchilada, not just Desktop.
-
phuclv over 5 yearsBesides, they did think about a single repo for the whole company: The first big debate was – how many repos do you have – one for the whole company at one extreme or one for each small component? A big spectrum
-
Hong Ooi over 5 years@phuclv Exactly, it is NOT everything in MS. Windows is big on its own.
-
Jan Hudec over 5 yearsThe problem is not as much many files as huge files. Git was designed to store source code, but Microsoft has images and other media and various data blobs thrown in their source repositories.
-
NtFreX over 5 yearsThere is now documentation here.
-
0xC0000022L about 2 yearsSo it's never again updated from the backing store? Is that what you're saying? Could you please name your sources for that.
-
Dwedit about 2 yearsI didn't check if it was 'ever checking the backing store again', I just didn't want something that was writing files to the disk.