mirror of
https://github.com/winfsp/winfsp.git
synced 2025-04-25 09:52:23 -05:00
DeleteFileW and RemoveDirectoryW in recent versions of Windows 10 have been changed to perform a FileDispositionInformationEx with POSIX semantics and if that fails to retry with FileDispositionInformation. Unfortunately this is done even for legitimate error codes such as STATUS_DIRECTORY_NOT_EMPTY. This means that user mode file systems have to do unnecessary CanDelete checks even when they support FileDispositionInformationEx. The extra check incurs extra context switches, and in some cases it may also be costly to compute (e.g. FUSE). We optimize this away by storing the status of the last CanDelete check in the FileDesc and then continue returning the same status code for all checks for the same FileDesc.