CVssWriter::Initialize 方法 (vswriter.h)
初始化 CVssWriter 物件,並允許寫入器應用程式與 VSS 互動。
Initialize 是由 CVssWriter 基類實作的公用方法。
語法
HRESULT Initialize(
[in] VSS_ID WriterId,
[in] LPCWSTR wszWriterName,
[in] VSS_USAGE_TYPE ut,
[in] VSS_SOURCE_TYPE st,
[in] VSS_APPLICATION_LEVEL nLevel,
[in] DWORD dwTimeoutFreeze,
[in] VSS_ALTERNATE_WRITER_STATE aws,
[in] bool bIOThrottlingOnly,
[in] LPCWSTR wszWriterInstanceName
);
參數
[in] WriterId
寫入器類別的全域唯一識別碼 (GUID) 。
[in] wszWriterName
以 Null結尾的寬字元字串,其中包含寫入器的名稱。 此字串未當地語系化。
[in] ut
VSS_USAGE_TYPE列舉值,指出寫入器管理的資料在主機系統上的使用方式。
[in] st
VSS_SOURCE_TYPE列舉值,指出寫入器所管理的資料型別。
[in] nLevel
VSS_APPLICATION_LEVEL列舉值,指出寫入器接收Freeze事件通知的應用程式層級。
此參數的預設值為 VSS_APP_FRONT_END。
[in] dwTimeoutFreeze
寫入器的 凍結 事件通知和從 VSS 接收相符的 Thaw 事件通知之間,允許的時間上限,以毫秒為單位。 逾時到期之後,會自動呼叫寫入器的 CVssWriter::OnAbort 方法。
此參數的預設值為 60000。
[in] aws
VSS_ALTERNATE_WRITER_STATE列舉值,指出寫入器是否有相關聯的替代寫入器。
此參數的預設值為 VSS_AWS_NO_ALTERNATE_WRITER。 呼叫端不應覆寫這個預設值。 這個參數保留給未來使用。
[in] bIOThrottlingOnly
如果已啟用 I/O 節流方法,請將此參數設定為 true ,否則為 false 。
此參數的預設值為 false。 呼叫端不應覆寫這個預設值。 這個參數保留給未來使用。
[in] wszWriterInstanceName
包含寫入器實例名稱的 Null終止寬字元字串。
此參數的預設值為 Null。 如果寫入器有多個實例且需要還原事件,則此參數是必要的,而且不能是 Null。 如需詳細資訊,請參閱下列一節。
Windows Server 2003 和 Windows XP: 在 Windows Server 2003 與 SP1 之前,此參數會保留供系統使用,而且呼叫端不應覆寫預設值。
傳回值
以下是這個方法的有效傳回碼。
值 | 意義 |
---|---|
|
已成功初始化寫入器物件。 |
|
無法初始化寫入器物件;VSS 寫入器基礎結構處於非使用中狀態,因為 Windows 處於安全模式或設定中。 |
|
呼叫端不是系統管理員。 |
|
其中一個參數值無效。 |
|
呼叫端記憶體不足或其他系統資源。 |
|
非預期的錯誤。 錯誤碼會記錄在錯誤記錄檔中。 如需詳細資訊,請參閱 VSS 下的事件和錯誤處理。
Windows Server 2008、Windows Vista、Windows Server 2003 和 Windows XP: 在 Windows Server 2008 R2 和 Windows 7 之前,不支援此值。 E_UNEXPECTED改用。 |
備註
VSS 會將唯一寫入器實例識別碼指派給寫入器應用程式的每個實例。 例如,如果系統上同時存在一個以上的實例, (例如,如果系統上有多個 SQL 伺服器執行) ,則每個寫入器都會由其寫入器類別識別碼及其寫入器實例識別碼的組合來唯一識別。
wszWriterInstanceName參數可讓多實例寫入器將每個寫入器實例的永續性名稱指定為人類可讀取的字串。 此名稱在系統上的所有寫入器實例中都必須是唯一的。 如果寫入器有多個實例且需要還原事件,則必須為此參數指定非Null 字串。 VSS 會使用實例名稱來正確還原多實例寫入器。
規格需求
最低支援的用戶端 | Windows XP [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2003 [僅限桌面應用程式] |
目標平台 | Windows |
標頭 | vswriter.h (包括 Vss.h、VsWriter.h) |
程式庫 | VssApi.lib |