VSS_COMPONENTINFO結構 (vsbackup.h)

VSS_COMPONENTINFO 結構包含指定元件的相關信息,並由 IVssWMComponent 介面傳回給要求者。

語法

typedef struct _VSS_COMPONENTINFO {
  VSS_COMPONENT_TYPE type;
  BSTR               bstrLogicalPath;
  BSTR               bstrComponentName;
  BSTR               bstrCaption;
  BYTE               *pbIcon;
  UINT               cbIcon;
  bool               bRestoreMetadata;
  bool               bNotifyOnBackupComplete;
  bool               bSelectable;
  bool               bSelectableForRestore;
  DWORD              dwComponentFlags;
  UINT               cFileCount;
  UINT               cDatabases;
  UINT               cLogFiles;
  UINT               cDependencies;
} VSS_COMPONENTINFO;

成員

type

元件類型。 請參閱 VSS_COMPONENT_TYPE

bstrLogicalPath

字串,包含元件的邏輯路徑。

邏輯路徑可以是 NULL

在非 NULL 邏輯路徑中出現的字元沒有任何限制。

bstrComponentName

包含元件名稱的字串。 元件名稱字串不可以是 NULL

bstrCaption

包含元件描述的字串。 標題 字串可以是NULL

pbIcon

緩衝區的指標,其中包含代表元件的可顯示圖示的二進位數據。 緩衝區內容應該使用與標準圖示 (.ico) 檔案相同的格式。 緩衝區的大小,以位元組為單位,由 cbIcon 指定。

如果建立元件的寫入器未選擇指定圖示, pbIconNULL

cbIcon

可顯示圖示的大小,以位元組為單位, (pbIcon) 代表元件。 如果 pbIconNULL,cbIcon 應為零。

bRestoreMetadata

布爾值,指出是否有與元件還原相關聯的私用元數據。 如果有元數據,則布爾值 為 true ;如果沒有元數據則為 false

寫入器會藉由使用 IVssCreateWriterMetadata::AddComponent 新增元件時設定此值,以指出元件是否支援私人元數據。 寫入器稍後會使用 IVssComponent::SetRestoreMetadata 新增還原元數據。 要求者會使用 IVssComponent::GetRestoreMetadata 來擷取資訊。

bNotifyOnBackupComplete

保留供未來使用。 此參數的值應該一律設定為 false

bSelectable

布爾值,表示元件模式作業 (,如果元件可選取進行備份,則為) 。 bSelectable 的值有助於判斷要求者可以選擇在備份作業中包含或排除指定的元件。 如果元件可選取進行備份,則布爾值為 true ;如果無法選取,則為 false

元件對於備份的可選取性沒有預設值。 使用 IVssCreateWriterMetadata::AddComponent 將元件新增至寫入器元數據檔時,寫入器必須一律明確設定值。

此外, bSelectable 的值、元件的邏輯路徑,以及元件與其他元件的關聯性,如該路徑中所表示,決定備份作業中何時及如何包含元件:

  • 對於無法選取的備份元件 (bSelectablefalse) ,且無法針對其邏輯路徑階層中的備份上階選取,則備份集中包含一律為必要且一律為隱含。 要求者會使用 IVssBackupComponents::AddComponent,在備份元件文件中明確地將元件新增至備份集。
  • 對於可選取的備份元件, (bSelectable為 true) ,其邏輯路徑階層中沒有備份上階的可選取專案,備份集中包含一律為選擇性且一律明確。 要求者會使用 IVssBackupComponents::AddComponent,在備份元件文件中明確地將元件新增至備份集。

    如果這類元件包含在其他元件的邏輯路徑中作為上階,則可針對備份選取的元件和不是的元件,則會定義包含這些其他元件的元件集做為子元件。 如果備份元件已明確包含在備份中,這些子元件就會隱含地包含在備份中。

  • 對於不可選取的備份元件 (bSelectablefalse) 其邏輯路徑階層中具有可選取的備份上階 (,因此是該上階) 所定義之元件集的一部分,因此,在備份集中包含備份上階的可選取專案一律是隱含的,而且必須包含備份上階的可選取專案。 要求者永遠不會在備份元件檔中明確地將元件新增至備份集;相反地,它會使用 IVssBackupComponents::AddComponent 將備份上階的可選取專案新增至檔。
  • 對於可選取的備份元件, (bSelectable為 true) 其邏輯路徑階層中的備份上階可選取 (,因此是該上階) 所定義的元件集的一部分,備份集中的包含可以是選擇性和明確,或者如果未明確選取元件,則 其包含可能是隱含的,並取決於是否包含可選取的備份上階。 如果元件包含明確,要求者會使用 IVssBackupComponents::AddComponent,明確地將元件新增至備份集。

    如果包含是隱含的,要求者不會將這些元件新增至備份元件檔中的備份集。

    如果元件包含明確且元件定義元件集,則會隱含選取該元件集的成員。

    寫入器會在使用 IVssCreateWriterMetadata::AddComponent 將元件新增至寫入器元數據檔時,設定備份 (bSelectable) 的可選取性。

    如需詳細資訊,請參閱 使用可選取性和邏輯路徑

bSelectableForRestore

指出元件模式作業 (的布爾值,) 元件是否可選取以進行還原。 bSelectableForRestore 可讓要求者判斷如果先前已 隱含地包含在 備份中,是否可以個別選取此元件以進行還原。 如果元件可選取進行還原,則布爾值為 true ,如果不是,則為 false

根據預設,元件的還原可選取性為 false。 寫入器可以使用 IVssCreateWriterMetadata::AddComponent 將元件新增至其寫入器元數據檔時覆寫此預設值。

如果元件明確新增至備份檔, (看到 明確元件包含) ,則一律可以個別選取以進行還原;因此,此旗標沒有意義。 如果元件隱含地新增至備份檔, 則 bSelectableForRestore 旗標會判斷是否可以使用 IVssBackupComponents::AddRestoreSubcomponent 個別還原元件。

如需詳細資訊,請參閱 使用可選取性和邏輯路徑

dwComponentFlags

VSS_COMPONENT_FLAGS 列舉值的 位掩碼 (或位 OR) ,表示這個元件支援的功能。

Windows Server 2003 和 Windows XP: 在 Windows Server 2003 與 SP1 之前,此成員會保留供系統使用。

cFileCount

如果元件是檔案群組,則群組中檔案的檔案描述項數目。 否則,此值為零。

cDatabases

如果元件是資料庫,則為資料庫檔案描述項的數目。 否則,此值為零。

cLogFiles

如果元件是資料庫,則資料庫記錄檔描述項的數目。 否則,此參數的值為零。

cDependencies

目前元件的明確寫入器元件相依性數目。 當寫入器呼叫 IVssCreateWriterMetadata::AddComponentDependency 時,此值會遞增。

備註

若要取得指定元件的VSS_COMPONENTINFO物件,要求者必須先透過呼叫 IVssEx要WriterMetadata::GetComponent 來取得對應的 IVssWMComponent 物件。 呼叫 IVssWMComponent::GetComponentInfo ,然後配置並傳回 VSS_COMPONENTINFO 結構。

因為 IVssWMComponent::GetComponentInfo 會配置並傳回VSS_COMPONENTINFO,所以要求者不應該直接釋放VSS_COMPONENTINFO物件,但應該使用 IVssWMComponent::FreeComponentInfo

規格需求

需求
最低支援的用戶端 Windows XP [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2003 [僅限桌面應用程式]
標頭 vsbackup.h (包括 VsBackup.h、Vss.h、VsWriter.h)

另請參閱

IVssCreateWriterMetadata::AddComponent

IVssEx surveyWriterMetadata

IVssExriterMetadata::GetComponent

IVssWMComponent

IVssWMComponent::FreeComponentInfo

IVssWMComponent::GetComponentInfo

VSS_COMPONENT_TYPE