1

我一直在使用VSS編寫備份程序,並從Windows SDK 6.1示例中的VSHADOW.EXE開始。它一般的作品,但我很驚訝地看到,某些文件仍鎖定它創建的卷影副本內,如Microsoft VSHADOW.EXE卷影副本包含鎖定的文件?

C:\Users\Felix\NtUser.dat 
C:\Users\Felix\NtUser.dat.log1 
C:\Users\Felix\AppData\Local\Microsoft\Windows\UsrClass.dat 
C:\Users\Felix\AppData\Local\Microsoft\Windows\UsrClass.dat.log1 
... 

的卷影副本訪問這些文件(不論CreateFileExCopyFileEx總指揮官或任何其他工具)通常給我一個錯誤32(因爲它被另一個進程的進程不能訪問該文件)。這似乎是任意發生的。怎麼可能?

我以前的編輯(事件日誌消息)竟然不被這個問題的核心,因爲我得到它固定的,它並沒有幫助。

回答

2

問題的文件竟然是符號鏈接到其他鎖定的文件。卷影副本中的相應文件也是指向原始硬盤上鎖定文件的符號鏈接。爲了解決這個問題,必須解析符號鏈接,並且必須找到它指向的文件,然後該文件必須位於卷影副本中。