JetOSSnapshotPrepare 函式
適用於: Windows |Windows Server
JetOSSnapshotPrepare 函式
JetOSSnapshotPrepare 函式會開始準備快照集會話。 快照集會話是一個簡短的時間間隔,引擎不會發出任何寫入 IO 到磁碟,讓引擎可以參與磁碟區快照集會話(由快照集寫入器驅動時)。
Windows XP:JetOSSnapshotPrepare 是在 Windows XP 中引進的。
JET_ERR JET_API JetOSSnapshotPrepare(
__out JET_OSSNAPID* psnapId,
__in const JET_GRBIT grbit
);
參數
psnapId
要啟動之快照集會話的標識碼。
grbit
這個呼叫的選項。 此參數可以有下列值的組合。
值 |
意義 |
---|---|
0 |
一般快照集。 |
JET_bitIncrementalSnapshot |
只會擷取記錄檔。 |
JET_bitCopySnapshot |
沒有記錄截斷的複製快照集(一般或累加式)。 |
JET_bitContinueAfterThaw |
快照集會話會在 JetOSSnapshotThaw 之後發生,而且需要 JetOSSnapshotEnd 函式呼叫。 |
JET_bitExplicitPrepare |
預設不會準備任何實例。 Windows 7: windows 7 中引進JET_bitExplicitPrepare。 |
傳回值
此函式會傳回具有下列其中一個傳回 碼的 JET_ERR 數據類型。 如需可能 ESE 錯誤的詳細資訊,請參閱可延伸 儲存體 引擎錯誤和錯誤處理參數。
傳回碼 |
描述 |
---|---|
JET_errSuccess |
作業已成功完成。 |
JET_errInvalidParameter |
快照標識碼指標為 NULL 或 grbit 參數無效。 |
JET_errOSSnapshotInvalidSequence |
快照集會話已在進行中,且作業在任何指定時間都不允許有一個以上的快照集會話。 |
如果此函式成功,快照集會話就能夠隨時啟動 IO 凍結階段。 將會傳回會話的標識碼,而且必須在快照集會話的後續呼叫中使用。
引擎的執行中實例現在會被視為快照集會話的一部分。
Windows Vista: 若要指定不同的實例子集, 可以呼叫 JetOSSnapshotPrepareInstance 。
一般 API 序列呼叫為:JetOSSnapshotPrepare,選擇性地接著一或多個 JetOSSnapshotPrepareInstance 的呼叫,然後接著 JetOSSnapshotFreeze。 凍結啟動后,就可以使用 JetOSSnapshotThaw 終止凍結。 在準備之後,快照集會話隨時都可以突然終止 JetOSSnapshotAbort。
如果在 JetOSSnapshotThaw 之後指定JET_bitContinueAfterThaw,快照集會話會維持(雖然 I/O 將會繼續)。 這會啟用快照集的驗證,如有需要,將會使用 JetOSSnapshotTruncateLog 啟用記錄截斷,而且需要呼叫 JetOSSnapshotEnd。
如果此函式失敗,則引擎狀態不會發生任何變更。
備註
系統會針對快照集的不同步驟產生事件記錄檔專案。
需求
需求 | 值 |
---|---|
用戶端 |
需要 Windows Vista 或 Windows XP。 |
Server |
需要 Windows Server 2008 或 Windows Server 2003。 |
頁首 |
在 Esent.h 中宣告。 |
程式庫 |
使用 ESENT.lib。 |
Dll |
需要 ESENT.dll。 |
另請參閱
JET_ERR
JET_OSSNAPID
JetOSSnapshotAbort
JetOSSnapshotEnd
JetOSSnapshotFreeze
JetOSSnapshotPrepareInstance
JetOSSnapshotThaw
JetOSSnapshotTruncateLog