X-Git-Url: https://wimlib.net/git/?p=wimlib;a=blobdiff_plain;f=include%2Fwimlib.h;h=2e5ba3c6fc2bb2d9a3a60ba43cb91793eb3cc209;hp=6a6b0e8a3dd27ce181c665bb493b45b52a2a71f0;hb=5d84c9526ece9e389a9dcdec675dfac017257e68;hpb=f1a477bb0927fdec7b2012839ddc51e8eb0c02ba diff --git a/include/wimlib.h b/include/wimlib.h index 6a6b0e8a..2e5ba3c6 100644 --- a/include/wimlib.h +++ b/include/wimlib.h @@ -1747,6 +1747,18 @@ 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, 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 +2517,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 +3180,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