IVssBackupComponents::D isableWriterClasses 方法 (vsbackup.h)

DisableWriterClasses方法可防止特定類別的寫入器接收任何事件。

語法

HRESULT DisableWriterClasses(
  [in] const VSS_ID *rgWriterClassId,
  [in] UINT         cClassId
);

參數

[in] rgWriterClassId

包含一或多個寫入器類別識別碼的陣列。

[in] cClassId

rgWriterClassId陣列中的專案數。

傳回值

以下是這個方法的有效傳回碼。

意義
S_OK
已成功停用寫入器類別。
E_ACCESSDENIED
呼叫端沒有足夠的備份許可權,或不是系統管理員。
E_OUTOFMEMORY
呼叫端記憶體不足或其他系統資源。
VSS_E_BAD_STATE
備份元件物件未初始化、在還原作業期間呼叫此方法,或未在正確的順序內呼叫此方法。
VSS_E_UNEXPECTED
非預期的錯誤。 錯誤碼會記錄在錯誤記錄檔中。 如需詳細資訊,請參閱 VSS 下的事件和錯誤處理

Windows Server 2008、Windows Vista、Windows Server 2003 和 Windows XP: 在 Windows Server 2008 R2 和 Windows 7 之前,不支援此值。 E_UNEXPECTED改用。

備註

如果您有相同寫入器的多個執行中複本,它們都會有相同的寫入器類別識別碼,但它們會有不同的寫入器實例識別碼。 停用寫入器類別會導致停用所有寫入器的實例。

如果永遠不會呼叫 DisableWriterClasses 方法和 IVssBackupComponents::EnableWriterClasses 方法,則會啟用所有寫入器類別。

第一次呼叫 DisableWriterClasses 傳回之後, 會停用 rgWriterClassId 陣列中指定的寫入器類別,並啟用所有其他寫入器類別。

如果您多次呼叫 DisableWriterClasses ,則每個呼叫都會將 rgWriterClassId 陣列中的寫入器新增至停用的寫入器清單。

如果您呼叫 DisableWriterClasses 一或多次,然後呼叫 EnableWriterClasses,則第一次呼叫 EnableWriterClasses 會取消 對 DisableWriterClasses 的呼叫效果,並且只啟用 rgWriterClassId 陣列中的寫入器。

如果您呼叫 DisableWriterClasses,您必須先這麼做,才能呼叫 IVssBackupComponents::GatherWriterMetadata 方法。 如果您先呼叫 GatherWriterMetadata ,然後再呼叫 DisableWriterClasses則 DisableWriterClasses 的呼叫不會有任何作用。 如果您需要先呼叫 GatherWriterMetadata ,才能判斷要停用的寫入器類別,您必須從 不同的 IVssBackupComponents 介面實例呼叫它。

規格需求

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

另請參閱

IVssBackupComponents

IVssBackupComponents::D isableWriterInstances

IVssBackupComponents::EnableWriterClasses