JetOSSnapshotPrepare Function
Applies to: Windows | Windows Server
JetOSSnapshotPrepare Function
The JetOSSnapshotPrepare function begins the preparations for a snapshot session. A snapshot session is a short time interval in which the engine does not issue any write IOs to disk, so that the engine can participate in a volume snapshot session (when driven by a snapshot writer).
Windows XP: JetOSSnapshotPrepare is introduced in Windows XP.
JET_ERR JET_API JetOSSnapshotPrepare(
__out JET_OSSNAPID* psnapId,
__in const JET_GRBIT grbit
);
Parameters
psnapId
The identifier of the snapshot session to be started.
grbit
The options for this call. This parameter can have a combination of the following values.
Value |
Meaning |
---|---|
0 |
Normal snapshot. |
JET_bitIncrementalSnapshot |
Only log files will be taken. |
JET_bitCopySnapshot |
A copy snapshot (normal or incremental) with no log truncation. |
JET_bitContinueAfterThaw |
The snapshot session occurs after JetOSSnapshotThaw and will require a JetOSSnapshotEnd function call. |
JET_bitExplicitPrepare |
No instances will be prepared by default. Windows 7: JET_bitExplicitPrepare is introduced in Windows 7. |
Return Value
This function returns the JET_ERR datatype with one of the following return codes. For more information about the possible ESE errors, see Extensible Storage Engine Errors and Error Handling Parameters.
Return code |
Description |
---|---|
JET_errSuccess |
The operation completed successfully. |
JET_errInvalidParameter |
The snapshot ID pointer is NULL or the grbit parameter is invalid. |
JET_errOSSnapshotInvalidSequence |
A snapshot session is already in progress and the operation is not allowed to have more than one snapshot session at any given time. |
If this function succeeds, a snapshot session will be able to start at any time with the IO freeze phase. The identifier for the session will be returned and must be used in the subsequent calls for the snapshot session.
The running instances of the engine will now be considered part of the snapshot session.
Windows Vista: To specify a different subset of instances, the JetOSSnapshotPrepareInstance can be called.
The normal API sequence call is: JetOSSnapshotPrepare, optionally followed by one or more calls to JetOSSnapshotPrepareInstance, then followed by JetOSSnapshotFreeze. Once the freeze is started, it can be terminated using JetOSSnapshotThaw. At any time after the prepare, the snapshot session can be abruptly terminated with JetOSSnapshotAbort.
If JET_bitContinueAfterThaw is specified after JetOSSnapshotThaw, the snapshot session will remain (although the I/O will resume). This will enable a verification of the snapshot, and if needed, will enable log truncation using JetOSSnapshotTruncateLog and will require a call to JetOSSnapshotEnd.
If this function fails, no change in the engine state occurs.
Remarks
Event log entries will be generated for the different steps of the snapshot.
Requirements
Requirement | Value |
---|---|
Client |
Requires Windows Vista or Windows XP. |
Server |
Requires Windows Server 2008 or Windows Server 2003. |
Header |
Declared in Esent.h. |
Library |
Use ESENT.lib. |
DLL |
Requires ESENT.dll. |
See Also
JET_ERR
JET_OSSNAPID
JetOSSnapshotAbort
JetOSSnapshotEnd
JetOSSnapshotFreeze
JetOSSnapshotPrepareInstance
JetOSSnapshotThaw
JetOSSnapshotTruncateLog