ProjFS doesn't allow deletion of virtualization root directory

Open
#36 5 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
30/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Stale
Tech stack
csharp

Research direction

Start by reproducing the Win10 1903 behavior with a ProjFS virtualization root and observe Explorer deletion. Investigate how root deletion is handled around the PRJ_NOTIFICATION_PRE_DELETE callback; done means the provider receives the root notification and can allow or block deletion with the expected result instead of error 0x80070032.

Written by the indexing model from the issue text.

Description

Note: I tried finding a ProjFS category in Feedback Hub because https://github.com/Microsoft/VFSForGit/issues/504 mentioned that one was in progress, but I couldn't find it.

Repro steps (I am running on Win10 1903):

  1. Add a virtualization root.
  2. Go into Explorer and try to delete the folder.

Expected results: I had expected ProjFS to support root deletion, specifically sending a PRJ_NOTIFICATION_PRE_DELETE for the root context so I can shut down my virtualization provider and return success or optionally block the deletion using an error code.
Actual results: Other than one directory enumeration callback, I don't receive a callback in my provider and Explorer shows an "unexpected error" dialog showing error code 0x80070032

This is important for my project because I am working on using ProjFS to virtualize my company's build output. I want to developers to be able to delete the root virtualization directory to do a completely clean build, but that doesn't work right now. Their workaround would be to run "rm -rf build/*" but that is confusing.

Dominant language
C#
Stars
174
Forks
40
PR merge metrics
No merged PRs in 30d

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from microsoft/ProjFS-Managed-API

All issues in microsoft/ProjFS-Managed-API

Similar issues

More C# issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.