]> wimlib.net Git - wimlib/blobdiff - include/wimlib.h
vss: note that it's only supported on Vista and later
[wimlib] / include / wimlib.h
index 6a6b0e8a3dd27ce181c665bb493b45b52a2a71f0..f2e9f22940b2b5303cac1341dbc5fe007b325dc8 100644 (file)
@@ -1747,6 +1747,19 @@ typedef int (*wimlib_iterate_lookup_table_callback_t)(const struct wimlib_resour
  */
 #define WIMLIB_ADD_FLAG_TEST_FILE_EXCLUSION    0x00004000
 
+/**
+ * EXPERIMENTAL, since wimlib v1.9.0: create a temporary filesystem snapshot of
+ * the source directory and add the files from it.  Currently, this option is
+ * only supported on Windows (Vista and later), where it uses the Volume Shadow
+ * Copy Service (VSS).  Using this option, you can create a consistent backup of
+ * the system volume of a running Windows system without running into problems
+ * with locked files.  For the VSS snapshot to be successfully created, your
+ * application must be run as an Administrator, and it cannot be run in WoW64
+ * mode (i.e. if Windows is 64-bit, then your application must be 64-bit as
+ * well).
+ */
+#define WIMLIB_ADD_FLAG_SNAPSHOT               0x00008000
+
 /* Note: the WIMLIB_ADD_IMAGE_FLAG names are retained for source compatibility.
  * Use the WIMLIB_ADD_FLAG names in new code.  */
 #define WIMLIB_ADD_IMAGE_FLAG_NTFS             WIMLIB_ADD_FLAG_NTFS
@@ -2505,6 +2518,7 @@ enum wimlib_error_code {
        WIMLIB_ERR_IMAGE_HAS_MULTIPLE_REFERENCES      = 86,
        WIMLIB_ERR_DUPLICATE_EXPORTED_IMAGE           = 87,
        WIMLIB_ERR_CONCURRENT_MODIFICATION_DETECTED   = 88,
+       WIMLIB_ERR_SNAPSHOT_FAILURE                   = 89,
 };
 
 
@@ -3167,7 +3181,7 @@ wimlib_get_image_name(const WIMStruct *wim, int image);
  *     "TOTALBYTES".  The name can contain forward slashes to indicate a nested
  *     XML element; for example, "WINDOWS/VERSION/BUILD" indicates the BUILD
  *     element nested within the VERSION element nested within the WINDOWS
- *     element.  Since wimlib v1.8.4, a bracketed number can be used to
+ *     element.  Since wimlib v1.9.0, a bracketed number can be used to
  *     indicate one of several identically-named elements; for example,
  *     "WINDOWS/LANGUAGES/LANGUAGE[2]" indicates the second "LANGUAGE" element
  *     nested within the "WINDOWS/LANGUAGES" element.  Note that element names