Skip to content

Conversation

@gan4-ua
Copy link

@gan4-ua gan4-ua commented Nov 5, 2021

System.UnauthorizedAccessException when running from a shared directory

I didn't actually manage to find any place when you are flushing the files stream without flushing the OS buffer, so it seems to me like you are simply trying to use the unbuffered I/O.

Just followed the recommendations on MSDN:
https://docs.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-flushfilebuffers

Due to disk caching interactions within the system, the FlushFileBuffers function can be inefficient when used after every write to a disk drive device when many writes are being performed separately. If an application is performing multiple writes to disk and also needs to ensure critical data is written to persistent media, the application should use unbuffered I/O instead of frequently calling FlushFileBuffers. To open a file for unbuffered I/O, call the CreateFile function with the FILE_FLAG_NO_BUFFERING and FILE_FLAG_WRITE_THROUGH flags. This prevents the file contents from being cached and flushes the metadata to disk with each write. For more information, see CreateFile.

System.UnauthorizedAccessException when running from a shared directory
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant