-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Replace non-WMI filesystem compression implemented in b31efb95 #253
Comments
b31efb9 https://docs.microsoft.com/en-us/dotnet/api/system.io.fileattributes?view=net-6.0#remarks
|
Current OptionsTraditional P/Invokepinvoke.net P/Invoke and Win32 NuGet packagesgithub:dotnet/pinvoke P/Invoke and Win32 code generationgithub:microsoft/CsWin32 |
Useful links[GitHub] dotnet/pinvoke/tree/main/src/Kernel32 |
DeviceIoControl sucks. It should be broken down into dozens if not hundreds of specific functions. Telling it what to do via const/enums is terrible for documentation. Some parameters aren't used or need to be passed slightly differently depending on the operation code you use. Is it safe to cast SafeHandle to SafeObjectHandle? |
What was lost has been replaced... |
We'll use P/Invoke (built-in P/Invoke, dotnet/PInvoke, and/or CsWin32) to leverage DeviceIoControl for compression operations.
A FLOSS implementation such as DiscUtils is preferable, but there's a much higher risk disk error due to of developer-error.
Like many other file system utilities, it does not provide SetCompression methods or something similar. However, it provides everything needed to write this method.
This may also bypass file/directory handles.
The PR to close this issue is being held up by #232 which will be resolved by CodeDead/deadlock-dotnet-sdk
The text was updated successfully, but these errors were encountered: