公開和顯示陰影複製的磁碟區
除了透過 IVssBackupComponents 介面,透過其復本的 裝置物件存取,要求者還可以將陰影複製提供給其他進程做為掛接的只讀裝置。
此過程稱為 公開陰影複製,並使用 IVssBackupComponents::ExposeSnapshot 方法執行。
快照副本可以顯示為本機磁碟區——分配一個磁碟機代號或與已掛載的資料夾相關聯——亦可作為檔案共用顯示。
為了說明,考慮在系統 exposedSys 上的一個被掛接於 F:\ 的磁碟區的陰影複製,其根目錄包含 dirOne 和 dirTwo 目錄,以及 FileOne 檔案。
在本機顯示陰影複製
當被掛載為本機磁碟區時,陰影複製的根目錄總是顯示在裝入點(驅動器號或掛載的資料夾),而且所有陰影複製的檔案都可見。
如果陰影複製是透過掛接的資料夾 C:\ShadowOfF 在本機公開,您會在 C:\ShadowOfF 下可用的陰影複製時,找到掛接在 F:\ 磁碟上的所有檔案。 檢查 C:\ShadowOfF 將會在 C:\ShadowOfF 下顯示兩個目錄 dirOne 和 dirTwo,以及一個檔案 fileOne。
對本機公開陰影複製的呼叫可能是:
IVssBackupComponents *pReq;
VSS_ID snapID;
PWSTR wszExposed;
// .
// .
hr = pReg->ExposeSnapshot(
snapID, // VSS_ID SnapshotId,
NULL, // VSS_PWSZ wszPathFromRoot
VSS_VOLSNAP_ATTR_EXPOSED_LOCALLY, // LONG lAttributes
L"C:\ShadowOfF", // VSS_PWSZ wszExpose
LPWSTR &wszExposed, // VSS_PWSZ* pwszExposed
);
如果陰影複製已成功在本機公開,wszExposed 應該包含寬字元字串「C:\ShadowOfF」。
稍後可以呼叫 IVssBackupComponentsEx2::UnexposeSnapshot來取消陰影複製。
只有使用 VSS_CTX_NAS_ROLLBACK 或 VSS_CTX_APP_ROLLBACK 建立的持續性陰影複製才能在本機公開。
將陰影複製公開為遠端共用
或者,您可以選擇將掛接在 F:\ 的磁碟快照做為遠端檔案共用,並將 dirTwo 下的資料提供為檔案共用 dirTwoOfF。
在此情況下,系統會將 \\exposedSys\dirTwoOfF 對應為網路磁碟機以便存取 F:\dirTwo 底下檔案的陰影複本。
實作遠端公開陰影複製作為共用的呼叫可能是下列各項:
IVssBackupComponents *pReq;
VSS_ID snapID;
LPWSTR wszExposed;
// .
// .
hr = pReg->ExposeSnapshot(
snapID, // VSS_ID SnapshotId,
L"\dirTwo", // VSS_PWSZ wszPathFromRoot
VSS_VOLSNAP_ATTR_EXPOSED_REMOTELY, // LONG lAttributes
L"dirTwoOfF", // VSS_PWSZ wszExpose
LPWSTR &wszExposed, // VSS_PWSZ* pwszExposed
);
如果陰影複製已成功從遠端公開,wszExposed 應該包含寬字元字串 「dirTwoOfF」。。
當前映射 dirTwoOfF 網路共用的任何系統都可以與其斷開連結,就像它可能會斷開與任何普通共用的連結一樣。
顯示陰影複製
浮出水面的陰影複製 是系統掛載管理員命名空間已知的陰影複製。
這表示您可以找到這類陰影複製,就像找到任何其他可用但尚未掛接的磁碟區一樣,例如,使用 FindFirstVolume 以及 FindNextVolume。
顯然,暴露的陰影複製也是顯示出來的陰影複製。 不過,反轉不一定成立。
如果本機顯示的陰影複製被卸除,或系統選擇中斷遠端顯示陰影複製的連線,該陰影複製將不再被顯示。 不過,只要陰影複製持續存在,磁碟區就會浮出水面。 這表示它們可以像任何其他唯讀磁碟區一樣被掛接。