I have taken a closer look on the NTFS compression. It appears that the only incompatibility with RamDyn was when the cleanup function attempts to fill the whole free space with a file filled with zeros.
As the file is filled with zeros, its content can be compressed infinitely. Therefore, the cleanup function fails to fill the free space and RamDyn forever takes 100% of 1 CPU core as soon as the cleanup function is triggered.
The fix is to disable the compression for the file(s) used in the cleanup process by using the FSCTL_SET_COMPRESSION control code.
This also means that RamDyn was already compatible if you were using the TRIM commands.
As RamDyn can now work with the NTFS compression, I also added an option in RamDiskUI to enable it.
There is also an important fix for the ramdisk synchronization feature. There is a security based on the volume ID to avoid the synchronization in the case where the volume was replaced by another one, which could lead to mistakenly delete a large number of files.
Unfortunately, this ID was not properly written in the registry and therefore, the service used at system shutdown could be unable to recognize the volumes to synchronize.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I have taken a closer look on the NTFS compression. It appears that the only incompatibility with RamDyn was when the cleanup function attempts to fill the whole free space with a file filled with zeros.
As the file is filled with zeros, its content can be compressed infinitely. Therefore, the cleanup function fails to fill the free space and RamDyn forever takes 100% of 1 CPU core as soon as the cleanup function is triggered.
The fix is to disable the compression for the file(s) used in the cleanup process by using the FSCTL_SET_COMPRESSION control code.
This also means that RamDyn was already compatible if you were using the TRIM commands.
As RamDyn can now work with the NTFS compression, I also added an option in RamDiskUI to enable it.
There is also an important fix for the ramdisk synchronization feature. There is a security based on the volume ID to avoid the synchronization in the case where the volume was replaced by another one, which could lead to mistakenly delete a large number of files.
Unfortunately, this ID was not properly written in the registry and therefore, the service used at system shutdown could be unable to recognize the volumes to synchronize.