Hi,
FILE_FLAG_OPEN_NO_RECALL is generally used by archiving software to
optimize file restore. If a application is opening a file with
FILE_FLAG_OPEN_NO_RECALL then file is not fetched from secondary storage
but read directly from secondary storage. So in the following sequence:
- Application opens a file with FILE_FLAG_OPEN_NO_RECALL with first
CreateFile() and asks for lease. File is not fetched from secondary storage. - Application issues second CreateFile() with WRITE requests. In that case
file need to be restored from secondary storage. - To restore the file, ARCHIVING software also needs to open the file in
WRITE mode.
Since “Lease” is held by application, so when ARCHIVING application opens a
WRITE handle to file, will that cause “Lease” to be broken. I am seeing
SHARING_VIOLATIONS when I try to open a file from ARCHIVING software. If
lease is broken then SHARING_VIOLATIONS should not come.
Thanks for help
Ash