I have a driver that updates a bitmap file on the volume to indicate changed blocks. I bypass the FS when updating the clusters so that I do not get a deadlock going through the FS. This driver works exceptionally well until Windows Deduplication is enabled. It appears that the clusters occupied by my bitmap are being moved. This results in me overwriting random data that may not be in the location where my retrieval pointes used to say were owned by the files.
When I open the file, I send control to FS to lock the clusters in place. This was added to prevent defrag from moving my data. I would assume that locking these clusters would also prevent deduplication from moving the clusters. Apparently, it does not.
I am looking for a way around this issue. Is there a way to prevent a file from being subject to deduplication? It seems that the MS deduplication is a little lacking in third party APIs.
Any help would be appreciated.