370 #include <inttypes.h> 377 #define WIMLIB_MAJOR_VERSION 1 380 #define WIMLIB_MINOR_VERSION 9 383 #define WIMLIB_PATCH_VERSION 0 393 #ifndef WIMLIB_WIMSTRUCT_DECLARED 395 #define WIMLIB_WIMSTRUCT_DECLARED 408 # define WIMLIB_WIM_PATH_SEPARATOR '\\' 409 # define WIMLIB_WIM_PATH_SEPARATOR_STRING L"\\" 413 # define WIMLIB_WIM_PATH_SEPARATOR '/' 414 # define WIMLIB_WIM_PATH_SEPARATOR_STRING "/" 418 #define WIMLIB_WIM_ROOT_PATH WIMLIB_WIM_PATH_SEPARATOR_STRING 422 #define WIMLIB_IS_WIM_ROOT_PATH(path) \ 423 ((path)[0] == WIMLIB_WIM_PATH_SEPARATOR && \ 427 #define WIMLIB_GUID_LEN 16 816 WIMLIB_SCAN_DENTRY_OK = 0,
973 const wimlib_tchar *
to;
1222 #define WIMLIB_CHANGE_READONLY_FLAG 0x00000001 1226 #define WIMLIB_CHANGE_GUID 0x00000002 1230 #define WIMLIB_CHANGE_BOOT_INDEX 0x00000004 1238 #define WIMLIB_CHANGE_RPFIX_FLAG 0x00000008 1290 uint32_t has_integrity_table : 1;
1294 uint32_t opened_from_file : 1;
1299 uint32_t is_readonly : 1;
1302 uint32_t has_rpfix : 1;
1305 uint32_t is_marked_readonly : 1;
1308 uint32_t spanned : 1;
1311 uint32_t write_in_progress : 1;
1314 uint32_t metadata_only : 1;
1317 uint32_t resource_only : 1;
1320 uint32_t pipable : 1;
1321 uint32_t reserved_flags : 22;
1322 uint32_t reserved[9];
1372 uint8_t sha1_hash[20];
1385 uint32_t is_compressed : 1;
1388 uint32_t is_metadata : 1;
1390 uint32_t is_free : 1;
1391 uint32_t is_spanned : 1;
1396 uint32_t is_missing : 1;
1399 uint32_t packed : 1;
1401 uint32_t reserved_flags : 26;
1415 uint64_t reserved[1];
1469 #define WIMLIB_FILE_ATTRIBUTE_READONLY 0x00000001 1470 #define WIMLIB_FILE_ATTRIBUTE_HIDDEN 0x00000002 1471 #define WIMLIB_FILE_ATTRIBUTE_SYSTEM 0x00000004 1472 #define WIMLIB_FILE_ATTRIBUTE_DIRECTORY 0x00000010 1473 #define WIMLIB_FILE_ATTRIBUTE_ARCHIVE 0x00000020 1474 #define WIMLIB_FILE_ATTRIBUTE_DEVICE 0x00000040 1475 #define WIMLIB_FILE_ATTRIBUTE_NORMAL 0x00000080 1476 #define WIMLIB_FILE_ATTRIBUTE_TEMPORARY 0x00000100 1477 #define WIMLIB_FILE_ATTRIBUTE_SPARSE_FILE 0x00000200 1478 #define WIMLIB_FILE_ATTRIBUTE_REPARSE_POINT 0x00000400 1479 #define WIMLIB_FILE_ATTRIBUTE_COMPRESSED 0x00000800 1480 #define WIMLIB_FILE_ATTRIBUTE_OFFLINE 0x00001000 1481 #define WIMLIB_FILE_ATTRIBUTE_NOT_CONTENT_INDEXED 0x00002000 1482 #define WIMLIB_FILE_ATTRIBUTE_ENCRYPTED 0x00004000 1483 #define WIMLIB_FILE_ATTRIBUTE_VIRTUAL 0x00010000 1490 #define WIMLIB_REPARSE_TAG_RESERVED_ZERO 0x00000000 1491 #define WIMLIB_REPARSE_TAG_RESERVED_ONE 0x00000001 1492 #define WIMLIB_REPARSE_TAG_MOUNT_POINT 0xA0000003 1493 #define WIMLIB_REPARSE_TAG_HSM 0xC0000004 1494 #define WIMLIB_REPARSE_TAG_HSM2 0x80000006 1495 #define WIMLIB_REPARSE_TAG_DRIVER_EXTENDER 0x80000005 1496 #define WIMLIB_REPARSE_TAG_SIS 0x80000007 1497 #define WIMLIB_REPARSE_TAG_DFS 0x8000000A 1498 #define WIMLIB_REPARSE_TAG_DFSR 0x80000012 1499 #define WIMLIB_REPARSE_TAG_FILTER_MANAGER 0x8000000B 1500 #define WIMLIB_REPARSE_TAG_WOF 0x80000017 1501 #define WIMLIB_REPARSE_TAG_SYMLINK 0xA000000C 1527 struct timespec creation_time;
1530 struct timespec last_write_time;
1533 struct timespec last_access_time;
1558 uint64_t reserved[14];
1593 #define WIMLIB_ITERATE_DIR_TREE_FLAG_RECURSIVE 0x00000001 1597 #define WIMLIB_ITERATE_DIR_TREE_FLAG_CHILDREN 0x00000002 1604 #define WIMLIB_ITERATE_DIR_TREE_FLAG_RESOURCES_NEEDED 0x00000004 1620 #define WIMLIB_ADD_FLAG_NTFS 0x00000001 1624 #define WIMLIB_ADD_FLAG_DEREFERENCE 0x00000002 1629 #define WIMLIB_ADD_FLAG_VERBOSE 0x00000004 1639 #define WIMLIB_ADD_FLAG_BOOT 0x00000008 1646 #define WIMLIB_ADD_FLAG_UNIX_DATA 0x00000010 1650 #define WIMLIB_ADD_FLAG_NO_ACLS 0x00000020 1657 #define WIMLIB_ADD_FLAG_STRICT_ACLS 0x00000040 1663 #define WIMLIB_ADD_FLAG_EXCLUDE_VERBOSE 0x00000080 1672 #define WIMLIB_ADD_FLAG_RPFIX 0x00000100 1675 #define WIMLIB_ADD_FLAG_NORPFIX 0x00000200 1681 #define WIMLIB_ADD_FLAG_NO_UNSUPPORTED_EXCLUDE 0x00000400 1698 #define WIMLIB_ADD_FLAG_WINCONFIG 0x00000800 1728 #define WIMLIB_ADD_FLAG_WIMBOOT 0x00001000 1737 #define WIMLIB_ADD_FLAG_NO_REPLACE 0x00002000 1746 #define WIMLIB_ADD_FLAG_TEST_FILE_EXCLUSION 0x00004000 1758 #define WIMLIB_ADD_FLAG_SNAPSHOT 0x00008000 1768 #define WIMLIB_ADD_FLAG_FILE_PATHS_UNNEEDED 0x00010000 1775 #define WIMLIB_DELETE_FLAG_FORCE 0x00000001 1779 #define WIMLIB_DELETE_FLAG_RECURSIVE 0x00000002 1791 #define WIMLIB_EXPORT_FLAG_BOOT 0x00000001 1796 #define WIMLIB_EXPORT_FLAG_NO_NAMES 0x00000002 1799 #define WIMLIB_EXPORT_FLAG_NO_DESCRIPTIONS 0x00000004 1804 #define WIMLIB_EXPORT_FLAG_GIFT 0x00000008 1821 #define WIMLIB_EXPORT_FLAG_WIMBOOT 0x00000010 1836 #define WIMLIB_EXTRACT_FLAG_NTFS 0x00000001 1841 #define WIMLIB_EXTRACT_FLAG_UNIX_DATA 0x00000020 1845 #define WIMLIB_EXTRACT_FLAG_NO_ACLS 0x00000040 1854 #define WIMLIB_EXTRACT_FLAG_STRICT_ACLS 0x00000080 1863 #define WIMLIB_EXTRACT_FLAG_RPFIX 0x00000100 1868 #define WIMLIB_EXTRACT_FLAG_NORPFIX 0x00000200 1872 #define WIMLIB_EXTRACT_FLAG_TO_STDOUT 0x00000400 1882 #define WIMLIB_EXTRACT_FLAG_REPLACE_INVALID_FILENAMES 0x00000800 1892 #define WIMLIB_EXTRACT_FLAG_ALL_CASE_CONFLICTS 0x00001000 1897 #define WIMLIB_EXTRACT_FLAG_STRICT_TIMESTAMPS 0x00002000 1901 #define WIMLIB_EXTRACT_FLAG_STRICT_SHORT_NAMES 0x00004000 1907 #define WIMLIB_EXTRACT_FLAG_STRICT_SYMLINKS 0x00008000 1921 #define WIMLIB_EXTRACT_FLAG_GLOB_PATHS 0x00040000 1926 #define WIMLIB_EXTRACT_FLAG_STRICT_GLOB 0x00080000 1932 #define WIMLIB_EXTRACT_FLAG_NO_ATTRIBUTES 0x00100000 1939 #define WIMLIB_EXTRACT_FLAG_NO_PRESERVE_DIR_STRUCTURE 0x00200000 1946 #define WIMLIB_EXTRACT_FLAG_WIMBOOT 0x00400000 1956 #define WIMLIB_EXTRACT_FLAG_COMPACT_XPRESS4K 0x01000000 1960 #define WIMLIB_EXTRACT_FLAG_COMPACT_XPRESS8K 0x02000000 1964 #define WIMLIB_EXTRACT_FLAG_COMPACT_XPRESS16K 0x04000000 1968 #define WIMLIB_EXTRACT_FLAG_COMPACT_LZX 0x08000000 1975 #define WIMLIB_MOUNT_FLAG_READWRITE 0x00000001 1978 #define WIMLIB_MOUNT_FLAG_DEBUG 0x00000002 1981 #define WIMLIB_MOUNT_FLAG_STREAM_INTERFACE_NONE 0x00000004 1986 #define WIMLIB_MOUNT_FLAG_STREAM_INTERFACE_XATTR 0x00000008 1990 #define WIMLIB_MOUNT_FLAG_STREAM_INTERFACE_WINDOWS 0x00000010 1994 #define WIMLIB_MOUNT_FLAG_UNIX_DATA 0x00000020 1998 #define WIMLIB_MOUNT_FLAG_ALLOW_OTHER 0x00000040 2010 #define WIMLIB_OPEN_FLAG_CHECK_INTEGRITY 0x00000001 2015 #define WIMLIB_OPEN_FLAG_ERROR_IF_SPLIT 0x00000002 2025 #define WIMLIB_OPEN_FLAG_WRITE_ACCESS 0x00000004 2033 #define WIMLIB_UNMOUNT_FLAG_CHECK_INTEGRITY 0x00000001 2037 #define WIMLIB_UNMOUNT_FLAG_COMMIT 0x00000002 2041 #define WIMLIB_UNMOUNT_FLAG_REBUILD 0x00000004 2045 #define WIMLIB_UNMOUNT_FLAG_RECOMPRESS 0x00000008 2055 #define WIMLIB_UNMOUNT_FLAG_FORCE 0x00000010 2061 #define WIMLIB_UNMOUNT_FLAG_NEW_IMAGE 0x00000020 2069 #define WIMLIB_UPDATE_FLAG_SEND_PROGRESS 0x00000001 2083 #define WIMLIB_WRITE_FLAG_CHECK_INTEGRITY 0x00000001 2090 #define WIMLIB_WRITE_FLAG_NO_CHECK_INTEGRITY 0x00000002 2105 #define WIMLIB_WRITE_FLAG_PIPABLE 0x00000004 2111 #define WIMLIB_WRITE_FLAG_NOT_PIPABLE 0x00000008 2138 #define WIMLIB_WRITE_FLAG_RECOMPRESS 0x00000010 2153 #define WIMLIB_WRITE_FLAG_FSYNC 0x00000020 2167 #define WIMLIB_WRITE_FLAG_REBUILD 0x00000040 2178 #define WIMLIB_WRITE_FLAG_SOFT_DELETE 0x00000080 2189 #define WIMLIB_WRITE_FLAG_IGNORE_READONLY_FLAG 0x00000100 2197 #define WIMLIB_WRITE_FLAG_SKIP_EXTERNAL_WIMS 0x00000200 2200 #define WIMLIB_WRITE_FLAG_STREAMS_OK 0x00000400 2208 #define WIMLIB_WRITE_FLAG_RETAIN_GUID 0x00000800 2245 #define WIMLIB_WRITE_FLAG_SOLID 0x00001000 2252 #define WIMLIB_WRITE_FLAG_SEND_DONE_WITH_FILE_MESSAGES 0x00002000 2259 #define WIMLIB_WRITE_FLAG_NO_SOLID_SORT 0x00004000 2277 #define WIMLIB_WRITE_FLAG_UNSAFE_COMPACT 0x00008000 2286 #define WIMLIB_INIT_FLAG_ASSUME_UTF8 0x00000001 2296 #define WIMLIB_INIT_FLAG_DONT_ACQUIRE_PRIVILEGES 0x00000002 2303 #define WIMLIB_INIT_FLAG_STRICT_CAPTURE_PRIVILEGES 0x00000004 2310 #define WIMLIB_INIT_FLAG_STRICT_APPLY_PRIVILEGES 0x00000008 2314 #define WIMLIB_INIT_FLAG_DEFAULT_CASE_SENSITIVE 0x00000010 2318 #define WIMLIB_INIT_FLAG_DEFAULT_CASE_INSENSITIVE 0x00000020 2326 #define WIMLIB_REF_FLAG_GLOB_ENABLE 0x00000001 2335 #define WIMLIB_REF_FLAG_GLOB_ERR_ON_NOMATCH 0x00000002 2506 #define WIMLIB_NO_IMAGE 0 2509 #define WIMLIB_ALL_IMAGES (-1) 2543 const wimlib_tchar *name,
2599 const wimlib_tchar *source,
2600 const wimlib_tchar *name,
2601 const wimlib_tchar *config_file,
2623 const wimlib_tchar *name,
2624 const wimlib_tchar *config_file,
2638 const wimlib_tchar *fs_source_path,
2713 const wimlib_tchar *path,
int delete_flags);
2785 const wimlib_tchar *dest_name,
2786 const wimlib_tchar *dest_description,
2898 const wimlib_tchar *target,
int extract_flags);
2940 const wimlib_tchar *image_num_or_name,
2941 const wimlib_tchar *target,
int extract_flags);
2954 const wimlib_tchar *image_num_or_name,
2955 const wimlib_tchar *target,
2978 const wimlib_tchar *target,
2979 const wimlib_tchar *path_list_file,
3058 const wimlib_tchar *target,
3059 const wimlib_tchar *
const *paths,
3108 extern const wimlib_tchar *
3124 extern const wimlib_tchar *
3133 extern const wimlib_tchar *
3144 extern const wimlib_tchar *
3175 extern const wimlib_tchar *
3177 const wimlib_tchar *property_name);
3410 const wimlib_tchar *output_path,
3412 int wim_write_flags);
3428 const wimlib_tchar *output_path,
3430 int wim_write_flags,
3513 const wimlib_tchar *dir,
3515 const wimlib_tchar *staging_dir);
3741 const wimlib_tchar *
const *resource_wimfiles_or_globs,
3768 unsigned num_resource_wims,
int ref_flags);
3833 WIMStruct *template_wim,
int template_image,
3867 const wimlib_tchar *source_path,
const wimlib_tchar *dest_path);
3901 const wimlib_tchar *image_name_or_num);
3950 const wimlib_tchar *description);
4010 const wimlib_tchar *property_name,
4011 const wimlib_tchar *property_value);
4043 void (*free_func)(
void *),
4044 void *(*realloc_func)(
void *,
size_t));
4208 const wimlib_tchar *swm_name,
4466 const wimlib_tchar *path,
4515 struct wimlib_compressor;
4518 struct wimlib_decompressor;
4562 size_t max_block_size,
4563 unsigned int compression_level);
4565 #define WIMLIB_COMPRESSOR_FLAG_DESTRUCTIVE 0x80000000 4637 size_t max_block_size,
4638 unsigned int compression_level,
4639 struct wimlib_compressor **compressor_ret);
4662 wimlib_compress(
const void *uncompressed_data,
size_t uncompressed_size,
4663 void *compressed_data,
size_t compressed_size_avail,
4664 struct wimlib_compressor *compressor);
4710 size_t max_block_size,
4711 struct wimlib_decompressor **decompressor_ret);
4742 void *uncompressed_data,
size_t uncompressed_size,
4743 struct wimlib_decompressor *decompressor);
const wimlib_tchar * filename
Name of the file, or NULL if this file is unnamed.
Definition: wimlib.h:1447
const wimlib_tchar * stream_name
Name of the stream, or NULL if the stream is unnamed.
Definition: wimlib.h:1432
uint64_t raw_resource_offset_in_wim
If this blob is located in a solid WIM resource, then this is the offset of that solid resource withi...
Definition: wimlib.h:1405
Valid on messages WIMLIB_PROGRESS_MSG_SPLIT_BEGIN_PART and WIMLIB_PROGRESS_MSG_SPLIT_END_PART.
Definition: wimlib.h:1023
wimlib_tchar * wim_target_path
Destination path in the WIM image.
Definition: wimlib.h:2361
A WIM image is about to be extracted.
Definition: wimlib.h:527
uint64_t completed_bytes
Definition: wimlib.h:1122
Definition: wimlib.h:2432
struct wimlib_progress_info::wimlib_progress_info_replace replace
unsigned total_parts
Total number of split WIM parts that are being written.
Definition: wimlib.h:1039
Valid on messages WIMLIB_PROGRESS_MSG_WIMBOOT_EXCLUDE.
Definition: wimlib.h:1058
uint32_t total_parts
The number of on-disk WIM files from which file data is being exported into the output WIM file...
Definition: wimlib.h:789
int wimlib_set_image_property(WIMStruct *wim, int image, const wimlib_tchar *property_name, const wimlib_tchar *property_value)
Since wimlib v1.8.3: add, modify, or remove a per-image property from the WIM's XML document...
const wimlib_tchar * cur_path
Path to the file (or directory) that has been scanned, valid on WIMLIB_PROGRESS_MSG_SCAN_DENTRY.
Definition: wimlib.h:810
Definition: wimlib.h:2484
uint64_t wimlib_get_compressor_needed_memory(enum wimlib_compression_type ctype, size_t max_block_size, unsigned int compression_level)
Return the approximate number of bytes needed to allocate a compressor with wimlib_create_compressor(...
int wimlib_set_image_name(WIMStruct *wim, int image, const wimlib_tchar *name)
Change the name of a WIM image.
wimlib_verify_wim() is starting to verify the metadata for an image.
Definition: wimlib.h:674
Definition: wimlib.h:2452
uint32_t total_chunks
The number of individually checksummed "chunks" the integrity-checked region is divided into...
Definition: wimlib.h:1006
Definition: wimlib.h:2431
Valid on messages WIMLIB_PROGRESS_MSG_VERIFY_INTEGRITY and WIMLIB_PROGRESS_MSG_CALC_INTEGRITY.
Definition: wimlib.h:994
Definition: wimlib.h:2445
Valid on messages WIMLIB_PROGRESS_MSG_RENAME.
Definition: wimlib.h:967
Definition: wimlib.h:2429
wimlib_overwrite() has successfully renamed the temporary file to the original WIM file...
Definition: wimlib.h:611
void wimlib_free(WIMStruct *wim)
Release a reference to a WIMStruct.
struct wimlib_progress_info::wimlib_progress_info_unmount unmount
struct WIMStruct WIMStruct
Opaque structure that represents a WIM, possibly backed by an on-disk file.
Definition: wimlib.h:394
The image has been successfully extracted.
Definition: wimlib.h:564
struct wimlib_progress_info::wimlib_progress_info_extract extract
int wimlib_set_memory_allocator(void *(*malloc_func)(size_t), void(*free_func)(void *), void *(*realloc_func)(void *, size_t))
Set the functions that wimlib uses to allocate and free memory.
Definition: wimlib.h:2435
wimlib_tchar * fs_source_path
Absolute or relative path to a file or directory on the external filesystem to be included in the WIM...
Definition: wimlib.h:1202
uint64_t total_bytes
Total size of the original WIM's file and metadata resources (compressed).
Definition: wimlib.h:1026
Valid on the message WIMLIB_PROGRESS_MSG_WRITE_STREAMS.
Definition: wimlib.h:750
Definition: wimlib.h:2493
int wimlib_reference_template_image(WIMStruct *wim, int new_image, WIMStruct *template_wim, int template_image, int flags)
Declare that a newly added image is mostly the same as a prior image, but captured at a later point i...
uint64_t compressed_size
If this blob is located in a non-solid WIM resource, then this is the compressed size of that resourc...
Definition: wimlib.h:1363
int wimlib_write_to_fd(WIMStruct *wim, int fd, int image, int write_flags, unsigned num_threads)
Same as wimlib_write(), but write the WIM directly to a file descriptor, which need not be seekable i...
File is being excluded from capture due to being of an unsupported type.
Definition: wimlib.h:824
uint32_t current_image
Definition: wimlib.h:1113
wimlib_update_op
The specific type of update to perform.
Definition: wimlib.h:2342
uint64_t reserved[1]
Definition: wimlib.h:1415
int32_t compression_type
The compression type being used, as one of the wimlib_compression_type constants. ...
Definition: wimlib.h:784
int wimlib_add_tree(WIMStruct *wim, int image, const wimlib_tchar *fs_source_path, const wimlib_tchar *wim_target_path, int add_flags)
Add the file or directory tree at fs_source_path on the filesystem to the location wim_target_path wi...
uint32_t unix_gid
The UNIX group ID of this file.
Definition: wimlib.h:1543
const wimlib_tchar * path
Path to the file for which exclusion is being tested.
Definition: wimlib.h:1140
int wimlib_delete_image(WIMStruct *wim, int image)
Delete an image, or all images, from a WIMStruct.
int wimlib_add_image(WIMStruct *wim, const wimlib_tchar *source, const wimlib_tchar *name, const wimlib_tchar *config_file, int add_flags)
Add an image to a WIMStruct from an on-disk directory tree or NTFS volume.
Definition: wimlib.h:2485
The LZMS compression format.
Definition: wimlib.h:512
Definition: wimlib.h:2450
Reparse-point fixups are enabled, but the file is an absolute symbolic link or junction that does not...
Definition: wimlib.h:838
int wimlib_create_decompressor(enum wimlib_compression_type ctype, size_t max_block_size, struct wimlib_decompressor **decompressor_ret)
Allocate a decompressor for the specified compression type.
wimlib_error_code
Possible values of the error code returned by many functions in wimlib.
Definition: wimlib.h:2420
Definition: wimlib.h:2471
Definition: wimlib.h:2478
int wimlib_set_image_flags(WIMStruct *wim, int image, const wimlib_tchar *flags)
Change what is stored in the <FLAGS> element in the WIM XML document (usually something like "Core" o...
const wimlib_tchar * path_to_file
Path to the file whose data has been written to the WIM file, or is currently being asynchronously co...
Definition: wimlib.h:1105
A WIM update command has been executed.
Definition: wimlib.h:645
uint32_t unix_rdev
The UNIX device ID (major and minor number) of this file.
Definition: wimlib.h:1556
uint32_t attributes
File attributes, such as whether the file is a directory or not.
Definition: wimlib.h:1488
uint32_t num_links
Number of links to this file's inode (hard links).
Definition: wimlib.h:1512
bool will_exclude
Indicates whether the file or directory will be excluded from capture or not.
Definition: wimlib.h:1148
int wimlib_open_wim(const wimlib_tchar *wim_file, int open_flags, WIMStruct **wim_ret)
Open a WIM file and create a WIMStruct for it.
struct wimlib_progress_info::wimlib_progress_info_split split
Per-image metadata is about to be written to the WIM file.
Definition: wimlib.h:599
Definition: wimlib.h:2449
struct wimlib_progress_info::wimlib_progress_info_integrity integrity
const wimlib_tchar * filename
For WIMLIB_PROGRESS_MSG_VERIFY_INTEGRITY messages, this is the path to the WIM file being checked...
Definition: wimlib.h:1018
Definition: wimlib.h:2422
A pointer to this union is passed to the user-supplied wimlib_progress_func_t progress function...
Definition: wimlib.h:745
uint64_t total_bytes
Definition: wimlib.h:1120
Definition: wimlib.h:2442
uint32_t completed_parts
This is currently broken and will always be 0.
Definition: wimlib.h:792
int wimlib_create_compressor(enum wimlib_compression_type ctype, size_t max_block_size, unsigned int compression_level, struct wimlib_compressor **compressor_ret)
Allocate a compressor for the specified compression type using the specified parameters.
uint64_t raw_resource_compressed_size
If this blob is located in a solid WIM resource, then this is the compressed size of that solid resou...
Definition: wimlib.h:1409
Definition: wimlib.h:2424
Definition: wimlib.h:2500
Definition: wimlib.h:2494
Delete a file or directory tree from the WIM image.
Definition: wimlib.h:2348
Definition: wimlib.h:2441
The operation should be continued.
Definition: wimlib.h:732
The contents of the WIM file are being checked against the integrity table.
Definition: wimlib.h:618
Definition: wimlib.h:2436
Definition: wimlib.h:2459
Valid on messages WIMLIB_PROGRESS_MSG_DONE_WITH_FILE.
Definition: wimlib.h:1086
struct wimlib_progress_info::wimlib_progress_info_test_file_exclusion test_file_exclusion
An error has occurred and the progress function is being asked whether to ignore the error or not...
Definition: wimlib.h:719
Data for a WIMLIB_UPDATE_OP_RENAME operation.
Definition: wimlib.h:2383
Definition: wimlib.h:2433
struct wimlib_progress_info::wimlib_progress_info_verify_streams verify_streams
One or more file or directory trees within a WIM image is about to be extracted.
Definition: wimlib.h:534
wimlib_tchar * wim_target_path
Destination path in the WIM image.
Definition: wimlib.h:1206
uint32_t chunk_size
The default compression chunk size of resources in this WIM file.
Definition: wimlib.h:1271
Definition: wimlib.h:2474
Definition: wimlib.h:2496
Starting to unmount a WIM image.
Definition: wimlib.h:664
void wimlib_global_cleanup(void)
Cleanup function for wimlib.
A WIM image is being extracted with WIMLIB_EXTRACT_FLAG_WIMBOOT, and a file is being extracted normal...
Definition: wimlib.h:660
A wimlib_split() operation is in progress, and a new split part is about to be started.
Definition: wimlib.h:629
An array of these structures is passed to wimlib_add_image_multisource() to specify the sources from ...
Definition: wimlib.h:1199
const wimlib_tchar * wimlib_get_error_string(enum wimlib_error_code code)
Convert a wimlib error code into a string describing it.
Valid on messages WIMLIB_PROGRESS_MSG_HANDLE_ERROR.
Definition: wimlib.h:1152
Definition: wimlib.h:2486
The XPRESS compression format.
Definition: wimlib.h:467
The files or directory trees have been successfully extracted.
Definition: wimlib.h:569
General information about a WIM file.
Definition: wimlib.h:1253
uint64_t completed_streams
The number of distinct file data "blobs" that have been written so far.
Definition: wimlib.h:776
Definition: wimlib.h:2421
const wimlib_tchar * path
Path to the file for which the error occurred, or NULL if not relevant.
Definition: wimlib.h:1156
The per-image metadata has been written to the WIM file.
Definition: wimlib.h:604
int wimlib_overwrite(WIMStruct *wim, int write_flags, unsigned num_threads)
Commit a WIMStruct to disk, updating its backing file.
char wimlib_tchar
See Locales and character encodings.
Definition: wimlib.h:402
struct wimlib_progress_info::wimlib_progress_info_handle_error handle_error
uint64_t total_bytes
The size of this WIM file in bytes, excluding the XML data and integrity table.
Definition: wimlib.h:1287
void wimlib_free_decompressor(struct wimlib_decompressor *decompressor)
Free a decompressor previously allocated with wimlib_create_decompressor().
wimlib_compression_type
Specifies a compression type.
Definition: wimlib.h:439
int wimlib_reference_resources(WIMStruct *wim, WIMStruct **resource_wims, unsigned num_resource_wims, int ref_flags)
Similar to wimlib_reference_resource_files(), but operates at a lower level where the caller must ope...
uint64_t total_streams
An upper bound on the number of distinct file data "blobs" that will be written.
Definition: wimlib.h:765
int wimlib_set_error_file_by_name(const wimlib_tchar *path)
Set the path to the file to which the library will print error and warning messages.
size_t security_descriptor_size
Length of the above security descriptor.
Definition: wimlib.h:1467
uint32_t mount_flags
Flags that were passed to wimlib_mount_image() when the mountpoint was set up.
Definition: wimlib.h:1079
const struct wimlib_update_command * command
Pointer to the update command that will be executed or has just been executed.
Definition: wimlib.h:981
Valid on messages WIMLIB_PROGRESS_MSG_BEGIN_VERIFY_IMAGE and WIMLIB_PROGRESS_MSG_END_VERIFY_IMAGE.
Definition: wimlib.h:1110
Definition: wimlib.h:2483
const wimlib_tchar * wim_target_path
Target path in the WIM image.
Definition: wimlib.h:845
Definition: wimlib.h:2423
wimlib_tchar * wim_source_path
Path, specified from the root of the WIM image, for the source file or directory tree within the WIM ...
Definition: wimlib.h:2387
const wimlib_tchar * source
Top-level directory being scanned; or, when capturing an NTFS volume with WIMLIB_ADD_FLAG_NTFS, this is instead the path to the file or block device that contains the NTFS volume being scanned.
Definition: wimlib.h:804
Definition: wimlib.h:2447
Definition: wimlib.h:2472
size_t wimlib_compress(const void *uncompressed_data, size_t uncompressed_size, void *compressed_data, size_t compressed_size_avail, struct wimlib_compressor *compressor)
Compress a buffer of data.
The directory or NTFS volume has been successfully scanned.
Definition: wimlib.h:588
uint32_t reference_count
If this blob is not missing, then this is the number of times this blob is referenced over all images...
Definition: wimlib.h:1381
int wimlib_rename_path(WIMStruct *wim, int image, const wimlib_tchar *source_path, const wimlib_tchar *dest_path)
Rename the source_path to the dest_path in the specified image of the wim.
const wimlib_tchar * wimfile
Definition: wimlib.h:1118
Definition: wimlib.h:2461
uint32_t num_named_streams
Number of named data streams this file has.
Definition: wimlib.h:1515
No compression.
Definition: wimlib.h:447
The LZX compression format.
Definition: wimlib.h:489
int wimlib_join(const wimlib_tchar *const *swms, unsigned num_swms, const wimlib_tchar *output_path, int swm_open_flags, int wim_write_flags)
Join a split WIM into a stand-alone (one-part) WIM.
Definition: wimlib.h:2490
int wimlib_global_init(int init_flags)
Initialization function for wimlib.
Valid on messages WIMLIB_PROGRESS_MSG_REPLACE_FILE_IN_WIM.
Definition: wimlib.h:1052
struct wimlib_progress_info::wimlib_progress_info_verify_image verify_image
const wimlib_tchar * path_in_wim
Path to the file in the WIM image.
Definition: wimlib.h:1060
int wimlib_verify_wim(WIMStruct *wim, int verify_flags)
Perform verification checks on a WIM file.
Definition: wimlib.h:2453
bool will_ignore
Indicates whether the error will be ignored or not.
Definition: wimlib.h:1166
struct wimlib_progress_info::wimlib_progress_info_write_streams write_streams
#define WIMLIB_GUID_LEN
Length of a Globally Unique Identifier (GUID), in bytes.
Definition: wimlib.h:427
Definition: wimlib.h:2481
Definition: wimlib.h:2469
Definition: wimlib.h:2430
uint64_t num_bytes_scanned
The number of bytes of file data detected so far, not counting excluded/unsupported files...
Definition: wimlib.h:864
int wimlib_unmount_image(const wimlib_tchar *dir, int unmount_flags)
Unmount a WIM image that was mounted using wimlib_mount_image().
Definition: wimlib.h:2480
struct wimlib_progress_info::wimlib_progress_info_wimboot_exclude wimboot_exclude
Definition: wimlib.h:2465
int wimlib_join_with_progress(const wimlib_tchar *const *swms, unsigned num_swms, const wimlib_tchar *output_path, int swm_open_flags, int wim_write_flags, wimlib_progress_func_t progfunc, void *progctx)
Same as wimlib_join(), but allows specifying a progress function.
int wimlib_unmount_image_with_progress(const wimlib_tchar *dir, int unmount_flags, wimlib_progress_func_t progfunc, void *progctx)
Same as wimlib_unmount_image(), but allows specifying a progress function.
int rename_flags
Reserved; set to 0.
Definition: wimlib.h:2394
uint64_t total_bytes
An upper bound on the number of bytes of file data that will be written.
Definition: wimlib.h:757
Definition: wimlib.h:2491
int wimlib_add_empty_image(WIMStruct *wim, const wimlib_tchar *name, int *new_idx_ret)
Append an empty image to a WIMStruct.
wimlib_progress_status
Valid return values from user-provided progress functions (wimlib_progress_func_t).
Definition: wimlib.h:728
uint32_t mounted_image
1-based index of image being unmounted.
Definition: wimlib.h:1075
long reserved
Reserved; set to 0.
Definition: wimlib.h:1209
enum wimlib_progress_status(* wimlib_progress_func_t)(enum wimlib_progress_msg msg_type, union wimlib_progress_info *info, void *progctx)
A user-supplied function that will be called periodically during certain WIM operations.
Definition: wimlib.h:1189
A directory or file has been scanned.
Definition: wimlib.h:582
Definition: wimlib.h:2466
uint64_t uncompressed_size
If this blob is not missing, then this is the uncompressed size of this blob in bytes.
Definition: wimlib.h:1359
Structure passed to the wimlib_iterate_dir_tree() callback function.
Definition: wimlib.h:1444
Definition: wimlib.h:2475
int add_flags
Bitwise OR of WIMLIB_ADD_FLAG_* flags.
Definition: wimlib.h:2368
const wimlib_tchar * extraction_path
Path to which the file is being extracted.
Definition: wimlib.h:1063
unsigned cur_part_number
Number of the split WIM part that is about to be started (WIMLIB_PROGRESS_MSG_SPLIT_BEGIN_PART) or ha...
Definition: wimlib.h:1036
Valid on messages WIMLIB_PROGRESS_MSG_SCAN_BEGIN, WIMLIB_PROGRESS_MSG_SCAN_DENTRY, and WIMLIB_PROGRESS_MSG_SCAN_END.
Definition: wimlib.h:798
Definition: wimlib.h:2470
Definition: wimlib.h:2444
uint32_t num_threads
The number of threads being used for data compression; or, if no compression is being performed...
Definition: wimlib.h:780
const wimlib_tchar * dos_name
8.3 name (or "DOS name", or "short name") of this file; or NULL if this file has no such name...
Definition: wimlib.h:1451
Definition: wimlib.h:2488
Definition: wimlib.h:2446
uint64_t total_bytes
The number of bytes in the WIM file that are covered by integrity checks.
Definition: wimlib.h:998
Definition: wimlib.h:2499
uint32_t total_images
Definition: wimlib.h:1112
Starting to read a new part of a split pipable WIM over the pipe.
Definition: wimlib.h:551
Definition: wimlib.h:2479
wimlib_progress_msg
Possible values of the first parameter to the user-supplied wimlib_progress_func_t progress function...
Definition: wimlib.h:521
Definition: wimlib.h:2456
Definition: wimlib.h:2455
Definition: wimlib.h:2439
Definition: wimlib.h:2434
struct wimlib_progress_info::wimlib_progress_info_rename rename
Rename a file or directory tree in the WIM image.
Definition: wimlib.h:2351
size_t completed_commands
Number of update commands that have been completed so far.
Definition: wimlib.h:985
Definition: wimlib.h:2443
File data is currently being extracted.
Definition: wimlib.h:547
This message may be sent periodically (not for every file) while files and directories are being crea...
Definition: wimlib.h:542
Add a new file or directory tree to the WIM image in a certain location.
Definition: wimlib.h:2345
int wimlib_reference_resource_files(WIMStruct *wim, const wimlib_tchar *const *resource_wimfiles_or_globs, unsigned count, int ref_flags, int open_flags)
Reference file data from other WIM files or split WIM parts.
int wimlib_set_output_chunk_size(WIMStruct *wim, uint32_t chunk_size)
Set a WIMStruct's output compression chunk size.
int wimlib_set_wim_info(WIMStruct *wim, const struct wimlib_wim_info *info, int which)
Set basic information about a WIM.
A wimlib_split() operation is in progress, and a split part has been finished.
Definition: wimlib.h:633
uint64_t completed_bytes
Number of bytes of file and metadata resources that have been copied out of the original WIM so far...
Definition: wimlib.h:1031
uint32_t boot_index
The 1-based index of the bootable image in this WIM file, or 0 if no image is bootable.
Definition: wimlib.h:1264
int wimlib_set_output_pack_compression_type(WIMStruct *wim, enum wimlib_compression_type ctype)
Similar to wimlib_set_output_compression_type(), but set the compression type for writing solid resou...
The operation should be aborted.
Definition: wimlib.h:736
uint32_t unix_uid
The UNIX user ID of this file.
Definition: wimlib.h:1538
wimlib_tchar * config_file
Path to capture configuration file to use, or NULL for default.
Definition: wimlib.h:2365
const wimlib_tchar * from
Name of the temporary file that the WIM was written to.
Definition: wimlib.h:969
int wimlib_set_print_errors(bool show_messages)
Set whether wimlib can print error and warning messages to the error file, which defaults to standard...
const char * security_descriptor
Pointer to the security descriptor for this file, in Windows SECURITY_DESCRIPTOR_RELATIVE format...
Definition: wimlib.h:1464
int delete_flags
Bitwise OR of WIMLIB_DELETE_FLAG_* flags.
Definition: wimlib.h:2379
size_t total_commands
Number of update commands that are being executed as part of this call to wimlib_update_image().
Definition: wimlib.h:989
int wimlib_delete_path(WIMStruct *wim, int image, const wimlib_tchar *path, int delete_flags)
Delete the path from the specified image of the wim.
int wimlib_set_output_compression_type(WIMStruct *wim, enum wimlib_compression_type ctype)
Set a WIMStruct's output compression type.
int error_code
The wimlib error code associated with the error.
Definition: wimlib.h:1159
uint32_t chunk_size
The size of each individually checksummed "chunk" in the integrity-checked region.
Definition: wimlib.h:1014
int wimlib_mount_image(WIMStruct *wim, int image, const wimlib_tchar *dir, int mount_flags, const wimlib_tchar *staging_dir)
Mount an image from a WIM file on a directory read-only or read-write.
Valid on messages WIMLIB_PROGRESS_MSG_VERIFY_STREAMS.
Definition: wimlib.h:1117
struct wimlib_progress_info::wimlib_progress_info_done_with_file done_with_file
Definition: wimlib.h:2427
Definition: wimlib.h:2463
Definition: wimlib.h:2426
int wimlib_decompress(const void *compressed_data, size_t compressed_size, void *uncompressed_data, size_t uncompressed_size, struct wimlib_decompressor *decompressor)
Decompress a buffer of data.
Definition: wimlib.h:2476
uint64_t completed_bytes
The number of bytes that have been checksummed so far.
Definition: wimlib.h:1002
int wimlib_set_default_compression_level(int ctype, unsigned int compression_level)
Set the default compression level for the specified compression type.
Information about a stream of a particular file in the WIM.
Definition: wimlib.h:1429
size_t depth
Depth of this directory entry, where 0 is the root, 1 is the root's children, ..., etc.
Definition: wimlib.h:1459
Definition: wimlib.h:2492
const wimlib_tchar * to
Name of the original WIM file to which the temporary file is being renamed.
Definition: wimlib.h:973
Data for a WIMLIB_UPDATE_OP_DELETE operation.
Definition: wimlib.h:2372
wimlib_verify_wim() has finished verifying the metadata for an image.
Definition: wimlib.h:679
wimlib_verify_wim() is verifying file data integrity.
Definition: wimlib.h:683
int wimlib_set_image_descripton(WIMStruct *wim, int image, const wimlib_tchar *description)
Change the description of a WIM image.
uint64_t completed_streams
Definition: wimlib.h:1121
Definition: wimlib.h:2460
const wimlib_tchar * symlink_target
For WIMLIB_PROGRESS_MSG_SCAN_DENTRY and a status of WIMLIB_SCAN_DENTRY_FIXED_SYMLINK or WIMLIB_SCAN_D...
Definition: wimlib.h:851
Definition: wimlib.h:2438
Definition: wimlib.h:2448
Valid on messages WIMLIB_PROGRESS_MSG_UNMOUNT_BEGIN.
Definition: wimlib.h:1067
int wimlib_set_output_pack_chunk_size(WIMStruct *wim, uint32_t chunk_size)
Similar to wimlib_set_output_chunk_size(), but set the chunk size for writing solid resources...
const wimlib_tchar * mountpoint
Path to directory being unmounted.
Definition: wimlib.h:1069
uint32_t unix_mode
The UNIX mode of this file.
Definition: wimlib.h:1550
An integrity table is being calculated for the WIM being written.
Definition: wimlib.h:624
Definition: wimlib.h:2482
struct wimlib_progress_info::wimlib_progress_info_update update
void wimlib_free_compressor(struct wimlib_compressor *compressor)
Free a compressor previously allocated with wimlib_create_compressor().
int wimlib_add_image_multisource(WIMStruct *wim, const struct wimlib_capture_source *sources, size_t num_sources, const wimlib_tchar *name, const wimlib_tchar *config_file, int add_flags)
This function is equivalent to wimlib_add_image() except it allows for multiple sources to be combine...
Definition: wimlib.h:2458
wimlib_tchar * part_name
Name of the split WIM part that is about to be started (WIMLIB_PROGRESS_MSG_SPLIT_BEGIN_PART) or has ...
Definition: wimlib.h:1048
int wimlib_set_error_file(FILE *fp)
Set the file to which the library will print error and warning messages.
A WIM update command is about to be executed.
Definition: wimlib.h:639
uint32_t completed_chunks
The number of chunks that have been checksummed so far.
Definition: wimlib.h:1010
int32_t compression_type
The default compression type of resources in this WIM file, as one of the wimlib_compression_type con...
Definition: wimlib.h:1283
uint64_t num_dirs_scanned
The number of directories scanned so far, not counting excluded/unsupported files.
Definition: wimlib.h:856
int wimlib_open_wim_with_progress(const wimlib_tchar *wim_file, int open_flags, WIMStruct **wim_ret, wimlib_progress_func_t progfunc, void *progctx)
Same as wimlib_open_wim(), but allows specifying a progress function and progress context...
The directory or NTFS volume is about to be scanned for metadata.
Definition: wimlib.h:576
struct wimlib_progress_info::wimlib_progress_info_scan scan
uint64_t num_nondirs_scanned
The number of non-directories scanned so far, not counting excluded/unsupported files.
Definition: wimlib.h:860
Definition: wimlib.h:2477
Definition: wimlib.h:2501
Specification of an update to perform on a WIM image.
Definition: wimlib.h:2398
Definition: wimlib.h:2497
uint32_t image_count
The number of images in this WIM file.
Definition: wimlib.h:1260
Definition: wimlib.h:2425
This message may be sent periodically (not necessarily for every file) while file and directory metad...
Definition: wimlib.h:559
Definition: wimlib.h:2437
uint64_t hard_link_group_id
A unique identifier for this file's inode.
Definition: wimlib.h:1524
uint32_t part_number
If this blob is located in a WIM resource, then this is the part number of the WIM file containing it...
Definition: wimlib.h:1376
uint64_t total_streams
Definition: wimlib.h:1119
uint32_t reparse_tag
If the file is a reparse point (FILE_ATTRIBUTE_REPARSE_POINT set in the attributes), this will give the reparse tag.
Definition: wimlib.h:1506
uint16_t part_number
For split WIMs, the 1-based index of this part within the split WIM; otherwise 1. ...
Definition: wimlib.h:1275
Definition: wimlib.h:2468
uint64_t raw_resource_uncompressed_size
If this blob is located in a solid WIM resource, then this is the uncompressed size of that solid res...
Definition: wimlib.h:1413
Definition: wimlib.h:2498
Definition: wimlib.h:2473
Definition: wimlib.h:2440
Definition: wimlib.h:2428
File data is currently being written to the WIM.
Definition: wimlib.h:595
uint64_t offset
If this blob is located in a non-solid WIM resource, then this is the offset of that resource within ...
Definition: wimlib.h:1369
const wimlib_tchar * full_path
Full path to this file within the WIM image.
Definition: wimlib.h:1455
Valid on messages WIMLIB_PROGRESS_MSG_TEST_FILE_EXCLUSION.
Definition: wimlib.h:1126
uint32_t wimlib_get_version(void)
Return the version of wimlib as a 32-bit number whose top 12 bits contain the major version...
uint64_t completed_bytes
The number of bytes of file data that have been written so far.
Definition: wimlib.h:771
const wimlib_tchar * wimfile
Definition: wimlib.h:1111
int wimlib_update_image(WIMStruct *wim, int image, const struct wimlib_update_command *cmds, size_t num_cmds, int update_flags)
Update a WIM image by adding, deleting, and/or renaming files or directories.
const wimlib_tchar * path_in_wim
Path to the file in the WIM image that is being replaced.
Definition: wimlib.h:1054
void wimlib_register_progress_function(WIMStruct *wim, wimlib_progress_func_t progfunc, void *progctx)
Register a progress function with a WIMStruct.
const wimlib_tchar * mounted_wim
Path to WIM file being unmounted.
Definition: wimlib.h:1072
uint32_t unmount_flags
Flags passed to wimlib_unmount_image().
Definition: wimlib.h:1082
The progress function is being asked whether a file should be excluded from capture or not...
Definition: wimlib.h:697
wimlib_tchar * fs_source_path
Filesystem path to the file or directory tree to add.
Definition: wimlib.h:2357
Definition: wimlib.h:2462
uint32_t wim_version
The version of the WIM file format used in this WIM file.
Definition: wimlib.h:1267
Definition: wimlib.h:2489
File is being excluded from capture due to the capture configuration.
Definition: wimlib.h:820
Definition: wimlib.h:2487
Definition: wimlib.h:2451
Definition: wimlib.h:2464
wimlib_tchar * wim_path
Path, specified from the root of the WIM image, for the file or directory tree within the WIM image t...
Definition: wimlib.h:2376
Definition: wimlib.h:2495
wimlib has used a file's data for the last time (including all data streams, if it has multiple)...
Definition: wimlib.h:670
const wimlib_tchar * wimlib_get_compression_type_string(enum wimlib_compression_type ctype)
Convert a wimlib_compression_type value into a string.
int wimlib_write(WIMStruct *wim, const wimlib_tchar *path, int image, int write_flags, unsigned num_threads)
Persist a WIMStruct to a new on-disk WIM file.
int wimlib_export_image(WIMStruct *src_wim, int src_image, WIMStruct *dest_wim, const wimlib_tchar *dest_name, const wimlib_tchar *dest_description, int export_flags)
Export an image, or all images, from a WIMStruct into another WIMStruct.
Definition: wimlib.h:2467
int wimlib_create_new_wim(enum wimlib_compression_type ctype, WIMStruct **wim_ret)
Create a WIMStruct which initially contains no images and is not backed by an on-disk file...
int wimlib_split(WIMStruct *wim, const wimlib_tchar *swm_name, uint64_t part_size, int write_flags)
Split a WIM into multiple parts.
Valid on messages WIMLIB_PROGRESS_MSG_UPDATE_BEGIN_COMMAND and WIMLIB_PROGRESS_MSG_UPDATE_END_COMMAND...
Definition: wimlib.h:978
wimlib_tchar * wim_target_path
Path, specified from the root of the WIM image, for the destination file or directory tree within the...
Definition: wimlib.h:2391
Definition: wimlib.h:2454
Information about a "blob", which is a fixed length sequence of binary data.
Definition: wimlib.h:1355
uint16_t total_parts
For split WIMs, the total number of parts in the split WIM; otherwise 1.
Definition: wimlib.h:1279
The file is an absolute symbolic link or junction that points into the capture directory, and reparse-point fixups are enabled, so its target is being adjusted.
Definition: wimlib.h:832
Definition: wimlib.h:2457
A file in the WIM image is being replaced as a result of a wimlib_add_command without WIMLIB_ADD_FLAG...
Definition: wimlib.h:652
Data for a WIMLIB_UPDATE_OP_ADD operation.
Definition: wimlib.h:2355