wimlib
Loading...
Searching...
No Matches
wimlib.h
Go to the documentation of this file.
1
389#ifndef _WIMLIB_H
390#define _WIMLIB_H
391
392#include <stdio.h>
393#include <stddef.h>
394#ifndef __cplusplus
395# if defined(_MSC_VER) && _MSC_VER < 1800 /* VS pre-2013? */
396 typedef unsigned char bool;
397# else
398# include <stdbool.h>
399# endif
400#endif
401#include <stdint.h>
402#include <time.h>
403
408#define WIMLIB_MAJOR_VERSION 1
409
411#define WIMLIB_MINOR_VERSION 13
412
414#define WIMLIB_PATCH_VERSION 2
415
416#ifdef __cplusplus
417extern "C" {
418#endif
419
420/*
421 * To represent file timestamps, wimlib's API originally used the POSIX 'struct
422 * timespec'. This was a mistake because when building wimlib for 32-bit
423 * Windows with MinGW we ended up originally using 32-bit time_t which isn't
424 * year 2038-safe, and therefore we had to later add fields like
425 * 'creation_time_high' to hold the high 32 bits of each timestamp. Moreover,
426 * old Visual Studio versions did not define struct timespec, while newer ones
427 * define it but with 64-bit tv_sec. So to at least avoid a missing or
428 * incompatible 'struct timespec' definition, define the correct struct
429 * ourselves when this header is included on Windows.
430 */
431#ifdef _WIN32
432struct wimlib_timespec {
433 /* Seconds since start of UNIX epoch (January 1, 1970) */
434#ifdef _WIN64
435 int64_t tv_sec;
436#else
437 int32_t tv_sec;
438#endif
439 /* Nanoseconds (0-999999999) */
440 int32_t tv_nsec;
441};
442#else
443# define wimlib_timespec timespec /* standard definition */
444#endif
445
450#ifndef WIMLIB_WIMSTRUCT_DECLARED
451typedef struct WIMStruct WIMStruct;
452#define WIMLIB_WIMSTRUCT_DECLARED
453#endif
454
455#ifdef _WIN32
456typedef wchar_t wimlib_tchar;
457#else
459typedef char wimlib_tchar;
460#endif
461
462#ifdef _WIN32
465# define WIMLIB_WIM_PATH_SEPARATOR '\\'
466# define WIMLIB_WIM_PATH_SEPARATOR_STRING L"\\"
467#else
470# define WIMLIB_WIM_PATH_SEPARATOR '/'
471# define WIMLIB_WIM_PATH_SEPARATOR_STRING "/"
472#endif
473
476#define WIMLIB_WIM_ROOT_PATH WIMLIB_WIM_PATH_SEPARATOR_STRING
477
480#define WIMLIB_IS_WIM_ROOT_PATH(path) \
481 ((path)[0] == WIMLIB_WIM_PATH_SEPARATOR && \
482 (path)[1] == 0)
483
485#define WIMLIB_GUID_LEN 16
486
572
580
586
593
601
606
610
618
623
628
635
641
647
654
658
663
670
677
683
688
692
698
704
711
719
723
729
733
738
742
756
778};
779
796
804
809
815 uint64_t total_bytes;
816
824
830
835
838 uint32_t num_threads;
839
843
847 uint32_t total_parts;
848
852
924
945
948 uint32_t image;
949
952
957
961
965
968
970 uint64_t total_bytes;
971
975
981
985
988 uint32_t part_number;
989
992 uint32_t total_parts;
993
997
1004
1023
1033
1049
1053
1056 uint64_t total_bytes;
1057
1061
1065
1069
1072 uint32_t chunk_size;
1073
1078
1108
1114
1123
1142
1165
1173
1182
1208
1226};
1227
1246typedef enum wimlib_progress_status
1248 union wimlib_progress_info *info,
1249 void *progctx);
1250
1269
1280#define WIMLIB_CHANGE_READONLY_FLAG 0x00000001
1281
1284#define WIMLIB_CHANGE_GUID 0x00000002
1285
1288#define WIMLIB_CHANGE_BOOT_INDEX 0x00000004
1289
1296#define WIMLIB_CHANGE_RPFIX_FLAG 0x00000008
1297
1312
1316
1318 uint32_t image_count;
1319
1322 uint32_t boot_index;
1323
1325 uint32_t wim_version;
1326
1329 uint32_t chunk_size;
1330
1333 uint16_t part_number;
1334
1337 uint16_t total_parts;
1338
1342
1345 uint64_t total_bytes;
1346
1349
1352 uint32_t opened_from_file : 1;
1353
1357 uint32_t is_readonly : 1;
1358
1360 uint32_t has_rpfix : 1;
1361
1364
1366 uint32_t spanned : 1;
1367
1369 uint32_t write_in_progress : 1;
1370
1372 uint32_t metadata_only : 1;
1373
1375 uint32_t resource_only : 1;
1376
1378 uint32_t pipable : 1;
1379 uint32_t reserved_flags : 22;
1380 uint32_t reserved[9];
1381};
1382
1414
1418
1422
1427 uint64_t offset;
1428
1430 uint8_t sha1_hash[20];
1431
1434 uint32_t part_number;
1435
1440
1443 uint32_t is_compressed : 1;
1444
1446 uint32_t is_metadata : 1;
1447
1448 uint32_t is_free : 1;
1449 uint32_t is_spanned : 1;
1450
1454 uint32_t is_missing : 1;
1455
1457 uint32_t packed : 1;
1458
1459 uint32_t reserved_flags : 26;
1460
1464
1468
1472
1473 uint64_t reserved[1];
1474};
1475
1488
1491
1494
1495 uint64_t reserved[4];
1496};
1497
1509
1518
1522
1526
1529 size_t depth;
1530
1535
1538
1539#define WIMLIB_FILE_ATTRIBUTE_READONLY 0x00000001
1540#define WIMLIB_FILE_ATTRIBUTE_HIDDEN 0x00000002
1541#define WIMLIB_FILE_ATTRIBUTE_SYSTEM 0x00000004
1542#define WIMLIB_FILE_ATTRIBUTE_DIRECTORY 0x00000010
1543#define WIMLIB_FILE_ATTRIBUTE_ARCHIVE 0x00000020
1544#define WIMLIB_FILE_ATTRIBUTE_DEVICE 0x00000040
1545#define WIMLIB_FILE_ATTRIBUTE_NORMAL 0x00000080
1546#define WIMLIB_FILE_ATTRIBUTE_TEMPORARY 0x00000100
1547#define WIMLIB_FILE_ATTRIBUTE_SPARSE_FILE 0x00000200
1548#define WIMLIB_FILE_ATTRIBUTE_REPARSE_POINT 0x00000400
1549#define WIMLIB_FILE_ATTRIBUTE_COMPRESSED 0x00000800
1550#define WIMLIB_FILE_ATTRIBUTE_OFFLINE 0x00001000
1551#define WIMLIB_FILE_ATTRIBUTE_NOT_CONTENT_INDEXED 0x00002000
1552#define WIMLIB_FILE_ATTRIBUTE_ENCRYPTED 0x00004000
1553#define WIMLIB_FILE_ATTRIBUTE_VIRTUAL 0x00010000
1558 uint32_t attributes;
1559
1560#define WIMLIB_REPARSE_TAG_RESERVED_ZERO 0x00000000
1561#define WIMLIB_REPARSE_TAG_RESERVED_ONE 0x00000001
1562#define WIMLIB_REPARSE_TAG_MOUNT_POINT 0xA0000003
1563#define WIMLIB_REPARSE_TAG_HSM 0xC0000004
1564#define WIMLIB_REPARSE_TAG_HSM2 0x80000006
1565#define WIMLIB_REPARSE_TAG_DRIVER_EXTENDER 0x80000005
1566#define WIMLIB_REPARSE_TAG_SIS 0x80000007
1567#define WIMLIB_REPARSE_TAG_DFS 0x8000000A
1568#define WIMLIB_REPARSE_TAG_DFSR 0x80000012
1569#define WIMLIB_REPARSE_TAG_FILTER_MANAGER 0x8000000B
1570#define WIMLIB_REPARSE_TAG_WOF 0x80000017
1571#define WIMLIB_REPARSE_TAG_SYMLINK 0xA000000C
1576 uint32_t reparse_tag;
1577
1582 uint32_t num_links;
1583
1586
1595
1598
1601
1604
1608 uint32_t unix_uid;
1609
1613 uint32_t unix_gid;
1614
1620 uint32_t unix_mode;
1621
1626 uint32_t unix_rdev;
1627
1628 /* The object ID of this file, if any. Only valid if
1629 * object_id.object_id is not all zeroes. */
1631
1635
1639
1643
1644 int32_t reserved2;
1645
1646 uint64_t reserved[4];
1647
1663};
1664
1669typedef int (*wimlib_iterate_dir_tree_callback_t)(const struct wimlib_dir_entry *dentry,
1670 void *user_ctx);
1671
1677 void *user_ctx);
1678
1681#define WIMLIB_ITERATE_DIR_TREE_FLAG_RECURSIVE 0x00000001
1682
1685#define WIMLIB_ITERATE_DIR_TREE_FLAG_CHILDREN 0x00000002
1686
1692#define WIMLIB_ITERATE_DIR_TREE_FLAG_RESOURCES_NEEDED 0x00000004
1693
1694
1708#define WIMLIB_ADD_FLAG_NTFS 0x00000001
1709
1712#define WIMLIB_ADD_FLAG_DEREFERENCE 0x00000002
1713
1717#define WIMLIB_ADD_FLAG_VERBOSE 0x00000004
1718
1727#define WIMLIB_ADD_FLAG_BOOT 0x00000008
1728
1734#define WIMLIB_ADD_FLAG_UNIX_DATA 0x00000010
1735
1738#define WIMLIB_ADD_FLAG_NO_ACLS 0x00000020
1739
1745#define WIMLIB_ADD_FLAG_STRICT_ACLS 0x00000040
1746
1751#define WIMLIB_ADD_FLAG_EXCLUDE_VERBOSE 0x00000080
1752
1760#define WIMLIB_ADD_FLAG_RPFIX 0x00000100
1761
1763#define WIMLIB_ADD_FLAG_NORPFIX 0x00000200
1764
1769#define WIMLIB_ADD_FLAG_NO_UNSUPPORTED_EXCLUDE 0x00000400
1770
1786#define WIMLIB_ADD_FLAG_WINCONFIG 0x00000800
1787
1816#define WIMLIB_ADD_FLAG_WIMBOOT 0x00001000
1817
1824#define WIMLIB_ADD_FLAG_NO_REPLACE 0x00002000
1825
1833#define WIMLIB_ADD_FLAG_TEST_FILE_EXCLUSION 0x00004000
1834
1845#define WIMLIB_ADD_FLAG_SNAPSHOT 0x00008000
1846
1855#define WIMLIB_ADD_FLAG_FILE_PATHS_UNNEEDED 0x00010000
1856
1862#define WIMLIB_DELETE_FLAG_FORCE 0x00000001
1863
1866#define WIMLIB_DELETE_FLAG_RECURSIVE 0x00000002
1867
1878#define WIMLIB_EXPORT_FLAG_BOOT 0x00000001
1879
1883#define WIMLIB_EXPORT_FLAG_NO_NAMES 0x00000002
1884
1886#define WIMLIB_EXPORT_FLAG_NO_DESCRIPTIONS 0x00000004
1887
1891#define WIMLIB_EXPORT_FLAG_GIFT 0x00000008
1892
1908#define WIMLIB_EXPORT_FLAG_WIMBOOT 0x00000010
1909
1923#define WIMLIB_EXTRACT_FLAG_NTFS 0x00000001
1924
1927#define WIMLIB_EXTRACT_FLAG_UNIX_DATA 0x00000020
1928
1931#define WIMLIB_EXTRACT_FLAG_NO_ACLS 0x00000040
1932
1942#define WIMLIB_EXTRACT_FLAG_STRICT_ACLS 0x00000080
1943
1952#define WIMLIB_EXTRACT_FLAG_RPFIX 0x00000100
1953
1957#define WIMLIB_EXTRACT_FLAG_NORPFIX 0x00000200
1958
1961#define WIMLIB_EXTRACT_FLAG_TO_STDOUT 0x00000400
1962
1972#define WIMLIB_EXTRACT_FLAG_REPLACE_INVALID_FILENAMES 0x00000800
1973
1982#define WIMLIB_EXTRACT_FLAG_ALL_CASE_CONFLICTS 0x00001000
1983
1987#define WIMLIB_EXTRACT_FLAG_STRICT_TIMESTAMPS 0x00002000
1988
1991#define WIMLIB_EXTRACT_FLAG_STRICT_SHORT_NAMES 0x00004000
1992
1997#define WIMLIB_EXTRACT_FLAG_STRICT_SYMLINKS 0x00008000
1998
2012#define WIMLIB_EXTRACT_FLAG_GLOB_PATHS 0x00040000
2013
2017#define WIMLIB_EXTRACT_FLAG_STRICT_GLOB 0x00080000
2018
2024#define WIMLIB_EXTRACT_FLAG_NO_ATTRIBUTES 0x00100000
2025
2032#define WIMLIB_EXTRACT_FLAG_NO_PRESERVE_DIR_STRUCTURE 0x00200000
2033
2040#define WIMLIB_EXTRACT_FLAG_WIMBOOT 0x00400000
2041
2050#define WIMLIB_EXTRACT_FLAG_COMPACT_XPRESS4K 0x01000000
2051
2054#define WIMLIB_EXTRACT_FLAG_COMPACT_XPRESS8K 0x02000000
2055
2058#define WIMLIB_EXTRACT_FLAG_COMPACT_XPRESS16K 0x04000000
2059
2062#define WIMLIB_EXTRACT_FLAG_COMPACT_LZX 0x08000000
2063
2069#define WIMLIB_MOUNT_FLAG_READWRITE 0x00000001
2070
2072#define WIMLIB_MOUNT_FLAG_DEBUG 0x00000002
2073
2075#define WIMLIB_MOUNT_FLAG_STREAM_INTERFACE_NONE 0x00000004
2076
2080#define WIMLIB_MOUNT_FLAG_STREAM_INTERFACE_XATTR 0x00000008
2081
2084#define WIMLIB_MOUNT_FLAG_STREAM_INTERFACE_WINDOWS 0x00000010
2085
2087#define WIMLIB_MOUNT_FLAG_UNIX_DATA 0x00000020
2088
2091#define WIMLIB_MOUNT_FLAG_ALLOW_OTHER 0x00000040
2092
2103#define WIMLIB_OPEN_FLAG_CHECK_INTEGRITY 0x00000001
2104
2108#define WIMLIB_OPEN_FLAG_ERROR_IF_SPLIT 0x00000002
2109
2118#define WIMLIB_OPEN_FLAG_WRITE_ACCESS 0x00000004
2119
2126#define WIMLIB_UNMOUNT_FLAG_CHECK_INTEGRITY 0x00000001
2127
2130#define WIMLIB_UNMOUNT_FLAG_COMMIT 0x00000002
2131
2134#define WIMLIB_UNMOUNT_FLAG_REBUILD 0x00000004
2135
2138#define WIMLIB_UNMOUNT_FLAG_RECOMPRESS 0x00000008
2139
2148#define WIMLIB_UNMOUNT_FLAG_FORCE 0x00000010
2149
2154#define WIMLIB_UNMOUNT_FLAG_NEW_IMAGE 0x00000020
2155
2162#define WIMLIB_UPDATE_FLAG_SEND_PROGRESS 0x00000001
2163
2176#define WIMLIB_WRITE_FLAG_CHECK_INTEGRITY 0x00000001
2177
2183#define WIMLIB_WRITE_FLAG_NO_CHECK_INTEGRITY 0x00000002
2184
2197#define WIMLIB_WRITE_FLAG_PIPABLE 0x00000004
2198
2203#define WIMLIB_WRITE_FLAG_NOT_PIPABLE 0x00000008
2204
2230#define WIMLIB_WRITE_FLAG_RECOMPRESS 0x00000010
2231
2245#define WIMLIB_WRITE_FLAG_FSYNC 0x00000020
2246
2259#define WIMLIB_WRITE_FLAG_REBUILD 0x00000040
2260
2270#define WIMLIB_WRITE_FLAG_SOFT_DELETE 0x00000080
2271
2281#define WIMLIB_WRITE_FLAG_IGNORE_READONLY_FLAG 0x00000100
2282
2289#define WIMLIB_WRITE_FLAG_SKIP_EXTERNAL_WIMS 0x00000200
2290
2292#define WIMLIB_WRITE_FLAG_STREAMS_OK 0x00000400
2293
2300#define WIMLIB_WRITE_FLAG_RETAIN_GUID 0x00000800
2301
2337#define WIMLIB_WRITE_FLAG_SOLID 0x00001000
2338
2344#define WIMLIB_WRITE_FLAG_SEND_DONE_WITH_FILE_MESSAGES 0x00002000
2345
2351#define WIMLIB_WRITE_FLAG_NO_SOLID_SORT 0x00004000
2352
2369#define WIMLIB_WRITE_FLAG_UNSAFE_COMPACT 0x00008000
2370
2376#define WIMLIB_INIT_FLAG_ASSUME_UTF8 0x00000001
2377
2386#define WIMLIB_INIT_FLAG_DONT_ACQUIRE_PRIVILEGES 0x00000002
2387
2393#define WIMLIB_INIT_FLAG_STRICT_CAPTURE_PRIVILEGES 0x00000004
2394
2400#define WIMLIB_INIT_FLAG_STRICT_APPLY_PRIVILEGES 0x00000008
2401
2404#define WIMLIB_INIT_FLAG_DEFAULT_CASE_SENSITIVE 0x00000010
2405
2408#define WIMLIB_INIT_FLAG_DEFAULT_CASE_INSENSITIVE 0x00000020
2409
2416#define WIMLIB_REF_FLAG_GLOB_ENABLE 0x00000001
2417
2425#define WIMLIB_REF_FLAG_GLOB_ERR_ON_NOMATCH 0x00000002
2426
2442
2459
2469
2482
2485
2487
2488 union {
2490 struct wimlib_delete_command delete_; /* Underscore is for C++
2491 compatibility. */
2493 };
2494};
2495
2588};
2589
2590
2592#define WIMLIB_NO_IMAGE 0
2593
2595#define WIMLIB_ALL_IMAGES (-1)
2596
2627extern int
2629 const wimlib_tchar *name,
2630 int *new_idx_ret);
2631
2683extern int
2685 const wimlib_tchar *source,
2686 const wimlib_tchar *name,
2687 const wimlib_tchar *config_file,
2688 int add_flags);
2689
2700extern int
2702 const struct wimlib_capture_source *sources,
2703 size_t num_sources,
2704 const wimlib_tchar *name,
2705 const wimlib_tchar *config_file,
2706 int add_flags);
2707
2717extern int
2719 const wimlib_tchar *fs_source_path,
2720 const wimlib_tchar *wim_target_path, int add_flags);
2721
2750extern int
2752
2781extern int
2783
2792extern int
2794 const wimlib_tchar *path, int delete_flags);
2795
2864extern int
2865wimlib_export_image(WIMStruct *src_wim, int src_image,
2866 WIMStruct *dest_wim,
2867 const wimlib_tchar *dest_name,
2868 const wimlib_tchar *dest_description,
2869 int export_flags);
2870
2983extern int
2985 const wimlib_tchar *target, int extract_flags);
2986
3025extern int
3027 const wimlib_tchar *image_num_or_name,
3028 const wimlib_tchar *target, int extract_flags);
3029
3039extern int
3041 const wimlib_tchar *image_num_or_name,
3042 const wimlib_tchar *target,
3043 int extract_flags,
3044 wimlib_progress_func_t progfunc,
3045 void *progctx);
3046
3066extern int
3068 const wimlib_tchar *target,
3069 const wimlib_tchar *path_list_file,
3070 int extract_flags);
3071
3141extern int
3143 int image,
3144 const wimlib_tchar *target,
3145 const wimlib_tchar * const *paths,
3146 size_t num_paths,
3147 int extract_flags);
3148
3163extern int
3165
3178extern void
3180
3194extern const wimlib_tchar *
3196
3210extern const wimlib_tchar *
3212
3219extern const wimlib_tchar *
3221
3230extern const wimlib_tchar *
3231wimlib_get_image_name(const WIMStruct *wim, int image);
3232
3261extern const wimlib_tchar *
3263 const wimlib_tchar *property_name);
3264
3276extern uint32_t
3278
3286extern const wimlib_tchar *
3288
3303extern int
3305
3333extern int
3334wimlib_get_xml_data(WIMStruct *wim, void **buf_ret, size_t *bufsize_ret);
3335
3354extern int
3355wimlib_global_init(int init_flags);
3356
3363extern void
3365
3382extern bool
3384
3429extern int
3431 int flags,
3432 wimlib_iterate_dir_tree_callback_t cb, void *user_ctx);
3433
3463extern int
3466 void *user_ctx);
3467
3504extern int
3505wimlib_join(const wimlib_tchar * const *swms,
3506 unsigned num_swms,
3507 const wimlib_tchar *output_path,
3508 int swm_open_flags,
3509 int wim_write_flags);
3510
3522extern int
3524 unsigned num_swms,
3525 const wimlib_tchar *output_path,
3526 int swm_open_flags,
3527 int wim_write_flags,
3528 wimlib_progress_func_t progfunc,
3529 void *progctx);
3530
3531
3607extern int
3609 int image,
3610 const wimlib_tchar *dir,
3611 int mount_flags,
3612 const wimlib_tchar *staging_dir);
3613
3683extern int
3685 int open_flags,
3686 WIMStruct **wim_ret);
3687
3699extern int
3701 int open_flags,
3702 WIMStruct **wim_ret,
3703 wimlib_progress_func_t progfunc,
3704 void *progctx);
3705
3765extern int
3766wimlib_overwrite(WIMStruct *wim, int write_flags, unsigned num_threads);
3767
3788extern void
3790
3796extern void
3798
3840extern int
3842 const wimlib_tchar * const *resource_wimfiles_or_globs,
3843 unsigned count,
3844 int ref_flags,
3845 int open_flags);
3846
3867extern int
3869 unsigned num_resource_wims, int ref_flags);
3870
3933extern int
3935 WIMStruct *template_wim, int template_image,
3936 int flags);
3937
3953extern void
3955 wimlib_progress_func_t progfunc,
3956 void *progctx);
3957
3967extern int
3969 const wimlib_tchar *source_path, const wimlib_tchar *dest_path);
3970
4001extern int
4003 const wimlib_tchar *image_name_or_num);
4004
4022extern int
4024
4041extern int
4043
4052extern int
4054 const wimlib_tchar *description);
4055
4063extern int
4064wimlib_set_image_flags(WIMStruct *wim, int image, const wimlib_tchar *flags);
4065
4072extern int
4073wimlib_set_image_name(WIMStruct *wim, int image, const wimlib_tchar *name);
4074
4112extern int
4114 const wimlib_tchar *property_name,
4115 const wimlib_tchar *property_value);
4116
4145extern int
4146wimlib_set_memory_allocator(void *(*malloc_func)(size_t),
4147 void (*free_func)(void *),
4148 void *(*realloc_func)(void *, size_t));
4149
4175extern int
4176wimlib_set_output_chunk_size(WIMStruct *wim, uint32_t chunk_size);
4177
4184extern int
4186
4206extern int
4208 enum wimlib_compression_type ctype);
4209
4216extern int
4218 enum wimlib_compression_type ctype);
4219
4242extern int
4243wimlib_set_print_errors(bool show_messages);
4244
4268extern int
4270 int which);
4271
4310extern int
4312 const wimlib_tchar *swm_name,
4313 uint64_t part_size,
4314 int write_flags);
4315
4353extern int
4354wimlib_verify_wim(WIMStruct *wim, int verify_flags);
4355
4389extern int
4390wimlib_unmount_image(const wimlib_tchar *dir, int unmount_flags);
4391
4400extern int
4402 int unmount_flags,
4403 wimlib_progress_func_t progfunc,
4404 void *progctx);
4405
4496extern int
4498 int image,
4499 const struct wimlib_update_command *cmds,
4500 size_t num_cmds,
4501 int update_flags);
4502
4564extern int
4566 const wimlib_tchar *path,
4567 int image,
4568 int write_flags,
4569 unsigned num_threads);
4570
4591extern int
4593 int fd,
4594 int image,
4595 int write_flags,
4596 unsigned num_threads);
4597
4615struct wimlib_compressor;
4616
4618struct wimlib_decompressor;
4619
4649extern int
4650wimlib_set_default_compression_level(int ctype, unsigned int compression_level);
4651
4660extern uint64_t
4662 size_t max_block_size,
4663 unsigned int compression_level);
4664
4665#define WIMLIB_COMPRESSOR_FLAG_DESTRUCTIVE 0x80000000
4666
4735extern int
4737 size_t max_block_size,
4738 unsigned int compression_level,
4739 struct wimlib_compressor **compressor_ret);
4740
4761extern size_t
4762wimlib_compress(const void *uncompressed_data, size_t uncompressed_size,
4763 void *compressed_data, size_t compressed_size_avail,
4764 struct wimlib_compressor *compressor);
4765
4772extern void
4773wimlib_free_compressor(struct wimlib_compressor *compressor);
4774
4808extern int
4810 size_t max_block_size,
4811 struct wimlib_decompressor **decompressor_ret);
4812
4840extern int
4841wimlib_decompress(const void *compressed_data, size_t compressed_size,
4842 void *uncompressed_data, size_t uncompressed_size,
4843 struct wimlib_decompressor *decompressor);
4844
4851extern void
4852wimlib_free_decompressor(struct wimlib_decompressor *decompressor);
4853
4854
4860#ifdef __cplusplus
4861}
4862#endif
4863
4864#endif /* _WIMLIB_H */
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.
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.
int wimlib_set_default_compression_level(int ctype, unsigned int compression_level)
Set the default compression level for the specified compression type.
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.
void wimlib_free_compressor(struct wimlib_compressor *compressor)
Free a compressor previously allocated with wimlib_create_compressor().
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(...
void wimlib_free_decompressor(struct wimlib_decompressor *decompressor)
Free a decompressor previously allocated with wimlib_create_decompressor().
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.
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.
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.
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_extract_image_from_pipe(int pipe_fd, const wimlib_tchar *image_num_or_name, const wimlib_tchar *target, int extract_flags)
Extract one image from a pipe on which a pipable WIM is being sent.
int wimlib_extract_paths(WIMStruct *wim, int image, const wimlib_tchar *target, const wimlib_tchar *const *paths, size_t num_paths, int extract_flags)
Extract zero or more paths (files or directory trees) from the specified WIM image.
int wimlib_extract_image(WIMStruct *wim, int image, const wimlib_tchar *target, int extract_flags)
Extract an image, or all images, from a WIMStruct.
int wimlib_extract_pathlist(WIMStruct *wim, int image, const wimlib_tchar *target, const wimlib_tchar *path_list_file, int extract_flags)
Similar to wimlib_extract_paths(), but the paths to extract from the WIM image are specified in the A...
int wimlib_extract_image_from_pipe_with_progress(int pipe_fd, const wimlib_tchar *image_num_or_name, const wimlib_tchar *target, int extract_flags, wimlib_progress_func_t progfunc, void *progctx)
Same as wimlib_extract_image_from_pipe(), but allows specifying a progress function.
int wimlib_set_error_file(FILE *fp)
Set the file to which the library will print error and warning messages.
char wimlib_tchar
See Character encoding.
Definition wimlib.h:459
#define WIMLIB_GUID_LEN
Length of a Globally Unique Identifier (GUID), in bytes.
Definition wimlib.h:485
int wimlib_verify_wim(WIMStruct *wim, int verify_flags)
Perform verification checks on a WIM file.
void wimlib_free(WIMStruct *wim)
Release a reference to a WIMStruct.
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 wimlib_tchar * wimlib_get_compression_type_string(enum wimlib_compression_type ctype)
Convert a wimlib_compression_type value into a string.
void wimlib_register_progress_function(WIMStruct *wim, wimlib_progress_func_t progfunc, void *progctx)
Register a progress function with a WIMStruct.
uint32_t wimlib_get_version(void)
Return the version of wimlib as a 32-bit number whose top 12 bits contain the major version,...
const wimlib_tchar * wimlib_get_version_string(void)
Since wimlib v1.13.0: like wimlib_get_version(), but returns the full PACKAGE_VERSION string that was...
struct WIMStruct WIMStruct
Opaque structure that represents a WIM, possibly backed by an on-disk file.
Definition wimlib.h:451
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.
#define wimlib_timespec
Definition wimlib.h:443
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.
const wimlib_tchar * wimlib_get_error_string(enum wimlib_error_code code)
Convert a wimlib error code into a string describing it.
int wimlib_global_init(int init_flags)
Initialization function for wimlib.
wimlib_error_code
Possible values of the error code returned by many functions in wimlib.
Definition wimlib.h:2506
void wimlib_global_cleanup(void)
Cleanup function for wimlib.
wimlib_compression_type
Specifies a compression type.
Definition wimlib.h:497
@ WIMLIB_ERR_INVALID_IMAGE
Definition wimlib.h:2520
@ WIMLIB_ERR_SET_XATTR
Definition wimlib.h:2587
@ WIMLIB_ERR_UNABLE_TO_READ_CAPTURE_CONFIG
Definition wimlib.h:2579
@ WIMLIB_ERR_READLINK
Definition wimlib.h:2550
@ WIMLIB_ERR_PATH_DOES_NOT_EXIST
Definition wimlib.h:2548
@ WIMLIB_ERR_DECOMPRESSION
Definition wimlib.h:2509
@ WIMLIB_ERR_XML
Definition wimlib.h:2569
@ WIMLIB_ERR_SPLIT_INVALID
Definition wimlib.h:2560
@ WIMLIB_ERR_INVALID_XATTR
Definition wimlib.h:2586
@ WIMLIB_ERR_INVALID_INTEGRITY_TABLE
Definition wimlib.h:2521
@ WIMLIB_ERR_SNAPSHOT_FAILURE
Definition wimlib.h:2585
@ WIMLIB_ERR_READ
Definition wimlib.h:2549
@ WIMLIB_ERR_IMAGE_HAS_MULTIPLE_REFERENCES
Definition wimlib.h:2582
@ WIMLIB_ERR_REPARSE_POINT_FIXUP_FAILED
Definition wimlib.h:2552
@ WIMLIB_ERR_INVALID_PARAM
Definition wimlib.h:2525
@ WIMLIB_ERR_RESOURCE_NOT_FOUND
Definition wimlib.h:2553
@ WIMLIB_ERR_MOUNTED_IMAGE_IS_BUSY
Definition wimlib.h:2575
@ WIMLIB_ERR_INVALID_UTF8_STRING
Definition wimlib.h:2531
@ WIMLIB_ERR_UNSUPPORTED_FILE
Definition wimlib.h:2566
@ WIMLIB_ERR_INSUFFICIENT_PRIVILEGES
Definition wimlib.h:2514
@ WIMLIB_ERR_SET_TIMESTAMPS
Definition wimlib.h:2559
@ WIMLIB_ERR_OPENDIR
Definition wimlib.h:2547
@ WIMLIB_ERR_NTFS_3G
Definition wimlib.h:2545
@ WIMLIB_ERR_IMAGE_NAME_COLLISION
Definition wimlib.h:2513
@ WIMLIB_ERR_RENAME
Definition wimlib.h:2551
@ WIMLIB_ERR_NOT_A_WIM_FILE
Definition wimlib.h:2542
@ WIMLIB_ERR_UNKNOWN_PROGRESS_STATUS
Definition wimlib.h:2573
@ WIMLIB_ERR_NO_FILENAME
Definition wimlib.h:2544
@ WIMLIB_ERR_WRITE
Definition wimlib.h:2568
@ WIMLIB_ERR_INVALID_LOOKUP_TABLE_ENTRY
Definition wimlib.h:2522
@ WIMLIB_ERR_NOT_A_REGULAR_FILE
Definition wimlib.h:2541
@ WIMLIB_ERR_STAT
Definition wimlib.h:2561
@ WIMLIB_ERR_NOT_PIPABLE
Definition wimlib.h:2543
@ WIMLIB_ERR_IS_DIRECTORY
Definition wimlib.h:2532
@ WIMLIB_ERR_METADATA_NOT_FOUND
Definition wimlib.h:2535
@ WIMLIB_ERR_ABORTED_BY_PROGRESS
Definition wimlib.h:2572
@ WIMLIB_ERR_WIMBOOT
Definition wimlib.h:2571
@ WIMLIB_ERR_WIM_IS_INCOMPLETE
Definition wimlib.h:2580
@ WIMLIB_ERR_UNKNOWN_VERSION
Definition wimlib.h:2564
@ WIMLIB_ERR_INVALID_METADATA_RESOURCE
Definition wimlib.h:2523
@ WIMLIB_ERR_SET_SECURITY
Definition wimlib.h:2557
@ WIMLIB_ERR_OPEN
Definition wimlib.h:2546
@ WIMLIB_ERR_IS_SPLIT_WIM
Definition wimlib.h:2533
@ WIMLIB_ERR_SET_SHORT_NAME
Definition wimlib.h:2558
@ WIMLIB_ERR_NOMEM
Definition wimlib.h:2538
@ WIMLIB_ERR_INVALID_OVERLAY
Definition wimlib.h:2524
@ WIMLIB_ERR_MKNOD
Definition wimlib.h:2574
@ WIMLIB_ERR_INVALID_RESOURCE_HASH
Definition wimlib.h:2529
@ WIMLIB_ERR_SET_REPARSE_DATA
Definition wimlib.h:2556
@ WIMLIB_ERR_MKDIR
Definition wimlib.h:2536
@ WIMLIB_ERR_FUSE
Definition wimlib.h:2510
@ WIMLIB_ERR_INVALID_REPARSE_DATA
Definition wimlib.h:2528
@ WIMLIB_ERR_DUPLICATE_EXPORTED_IMAGE
Definition wimlib.h:2583
@ WIMLIB_ERR_SUCCESS
Definition wimlib.h:2507
@ WIMLIB_ERR_NOTEMPTY
Definition wimlib.h:2540
@ WIMLIB_ERR_UNSUPPORTED
Definition wimlib.h:2565
@ WIMLIB_ERR_INVALID_CAPTURE_CONFIG
Definition wimlib.h:2516
@ WIMLIB_ERR_INVALID_CHUNK_SIZE
Definition wimlib.h:2517
@ WIMLIB_ERR_LINK
Definition wimlib.h:2534
@ WIMLIB_ERR_INVALID_PIPABLE_WIM
Definition wimlib.h:2527
@ WIMLIB_ERR_IMAGE_COUNT
Definition wimlib.h:2512
@ WIMLIB_ERR_INVALID_HEADER
Definition wimlib.h:2519
@ WIMLIB_ERR_UNEXPECTED_END_OF_FILE
Definition wimlib.h:2562
@ WIMLIB_ERR_GLOB_HAD_NO_MATCHES
Definition wimlib.h:2511
@ WIMLIB_ERR_NOTDIR
Definition wimlib.h:2539
@ WIMLIB_ERR_UNICODE_STRING_NOT_REPRESENTABLE
Definition wimlib.h:2563
@ WIMLIB_ERR_FVE_LOCKED_VOLUME
Definition wimlib.h:2578
@ WIMLIB_ERR_COMPACTION_NOT_POSSIBLE
Definition wimlib.h:2581
@ WIMLIB_ERR_SET_ATTRIBUTES
Definition wimlib.h:2555
@ WIMLIB_ERR_INVALID_UTF16_STRING
Definition wimlib.h:2530
@ WIMLIB_ERR_NOT_PERMITTED_TO_UNMOUNT
Definition wimlib.h:2577
@ WIMLIB_ERR_INTEGRITY
Definition wimlib.h:2515
@ WIMLIB_ERR_WIM_IS_ENCRYPTED
Definition wimlib.h:2570
@ WIMLIB_ERR_RESOURCE_ORDER
Definition wimlib.h:2554
@ WIMLIB_ERR_INVALID_COMPRESSION_TYPE
Definition wimlib.h:2518
@ WIMLIB_ERR_ALREADY_LOCKED
Definition wimlib.h:2508
@ WIMLIB_ERR_MQUEUE
Definition wimlib.h:2537
@ WIMLIB_ERR_INVALID_PART_NUMBER
Definition wimlib.h:2526
@ WIMLIB_ERR_WIM_IS_READONLY
Definition wimlib.h:2567
@ WIMLIB_ERR_NOT_A_MOUNTPOINT
Definition wimlib.h:2576
@ WIMLIB_ERR_CONCURRENT_MODIFICATION_DETECTED
Definition wimlib.h:2584
@ WIMLIB_COMPRESSION_TYPE_NONE
No compression.
Definition wimlib.h:505
@ WIMLIB_COMPRESSION_TYPE_LZMS
The LZMS compression format.
Definition wimlib.h:570
@ WIMLIB_COMPRESSION_TYPE_LZX
The LZX compression format.
Definition wimlib.h:547
@ WIMLIB_COMPRESSION_TYPE_XPRESS
The XPRESS compression format.
Definition wimlib.h:525
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_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.
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...
int wimlib_add_empty_image(WIMStruct *wim, const wimlib_tchar *name, int *new_idx_ret)
Append an empty image to a WIMStruct.
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...
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...
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.
int wimlib_set_wim_info(WIMStruct *wim, const struct wimlib_wim_info *info, int which)
Set basic information about a WIM.
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...
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.
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.
int wimlib_delete_image(WIMStruct *wim, int image)
Delete an image, or all images, from a WIMStruct.
int wimlib_set_image_descripton(WIMStruct *wim, int image, const wimlib_tchar *description)
Change the description of a WIM image.
int wimlib_set_image_name(WIMStruct *wim, int image, const wimlib_tchar *name)
Change the name of a WIM image.
wimlib_update_op
The specific type of update to perform.
Definition wimlib.h:2432
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.
@ WIMLIB_UPDATE_OP_RENAME
Rename a file or directory tree in the image.
Definition wimlib.h:2440
@ WIMLIB_UPDATE_OP_DELETE
Delete a file or directory tree from the image.
Definition wimlib.h:2437
@ WIMLIB_UPDATE_OP_ADD
Add a new file or directory tree to the image.
Definition wimlib.h:2434
int wimlib_unmount_image(const wimlib_tchar *dir, int unmount_flags)
Unmount a WIM image that was mounted using wimlib_mount_image().
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 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.
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_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...
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_split(WIMStruct *wim, const wimlib_tchar *swm_name, uint64_t part_size, int write_flags)
Split a WIM into multiple parts.
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.
wimlib_progress_status
Valid return values from user-provided progress functions (wimlib_progress_func_t).
Definition wimlib.h:786
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:1247
wimlib_progress_msg
Possible values of the first parameter to the user-supplied wimlib_progress_func_t progress function.
Definition wimlib.h:579
@ WIMLIB_PROGRESS_STATUS_CONTINUE
The operation should be continued.
Definition wimlib.h:790
@ WIMLIB_PROGRESS_STATUS_ABORT
The operation should be aborted.
Definition wimlib.h:794
@ WIMLIB_PROGRESS_MSG_SPLIT_BEGIN_PART
A wimlib_split() operation is in progress, and a new split part is about to be started.
Definition wimlib.h:687
@ WIMLIB_PROGRESS_MSG_UNMOUNT_BEGIN
Starting to unmount an image.
Definition wimlib.h:722
@ WIMLIB_PROGRESS_MSG_VERIFY_STREAMS
wimlib_verify_wim() is verifying file data integrity.
Definition wimlib.h:741
@ WIMLIB_PROGRESS_MSG_EXTRACT_SPWM_PART_BEGIN
Starting to read a new part of a split pipable WIM over the pipe.
Definition wimlib.h:609
@ WIMLIB_PROGRESS_MSG_EXTRACT_IMAGE_END
The image has been successfully extracted.
Definition wimlib.h:622
@ WIMLIB_PROGRESS_MSG_REPLACE_FILE_IN_WIM
A file in the image is being replaced as a result of a wimlib_add_command without WIMLIB_ADD_FLAG_NO_...
Definition wimlib.h:710
@ WIMLIB_PROGRESS_MSG_VERIFY_INTEGRITY
The contents of the WIM file are being checked against the integrity table.
Definition wimlib.h:676
@ WIMLIB_PROGRESS_MSG_EXTRACT_STREAMS
File data is currently being extracted.
Definition wimlib.h:605
@ WIMLIB_PROGRESS_MSG_END_VERIFY_IMAGE
wimlib_verify_wim() has finished verifying the metadata for an image.
Definition wimlib.h:737
@ WIMLIB_PROGRESS_MSG_EXTRACT_TREE_BEGIN
One or more file or directory trees within a WIM image is about to be extracted.
Definition wimlib.h:592
@ WIMLIB_PROGRESS_MSG_WRITE_METADATA_END
The per-image metadata has been written to the WIM file.
Definition wimlib.h:662
@ WIMLIB_PROGRESS_MSG_HANDLE_ERROR
An error has occurred and the progress function is being asked whether to ignore the error or not.
Definition wimlib.h:777
@ WIMLIB_PROGRESS_MSG_SPLIT_END_PART
A wimlib_split() operation is in progress, and a split part has been finished.
Definition wimlib.h:691
@ WIMLIB_PROGRESS_MSG_WRITE_STREAMS
File data is currently being written to the WIM.
Definition wimlib.h:653
@ WIMLIB_PROGRESS_MSG_RENAME
wimlib_overwrite() has successfully renamed the temporary file to the original WIM file,...
Definition wimlib.h:669
@ WIMLIB_PROGRESS_MSG_TEST_FILE_EXCLUSION
The progress function is being asked whether a file should be excluded from capture or not.
Definition wimlib.h:755
@ WIMLIB_PROGRESS_MSG_WIMBOOT_EXCLUDE
An image is being extracted with WIMLIB_EXTRACT_FLAG_WIMBOOT, and a file is being extracted normally ...
Definition wimlib.h:718
@ WIMLIB_PROGRESS_MSG_BEGIN_VERIFY_IMAGE
wimlib_verify_wim() is starting to verify the metadata for an image.
Definition wimlib.h:732
@ WIMLIB_PROGRESS_MSG_UPDATE_BEGIN_COMMAND
A WIM update command is about to be executed.
Definition wimlib.h:697
@ WIMLIB_PROGRESS_MSG_EXTRACT_TREE_END
The files or directory trees have been successfully extracted.
Definition wimlib.h:627
@ WIMLIB_PROGRESS_MSG_CALC_INTEGRITY
An integrity table is being calculated for the WIM being written.
Definition wimlib.h:682
@ WIMLIB_PROGRESS_MSG_SCAN_DENTRY
A directory or file has been scanned.
Definition wimlib.h:640
@ WIMLIB_PROGRESS_MSG_EXTRACT_METADATA
This message may be sent periodically (not necessarily for every file) while file and directory metad...
Definition wimlib.h:617
@ WIMLIB_PROGRESS_MSG_DONE_WITH_FILE
wimlib has used a file's data for the last time (including all data streams, if it has multiple).
Definition wimlib.h:728
@ WIMLIB_PROGRESS_MSG_UPDATE_END_COMMAND
A WIM update command has been executed.
Definition wimlib.h:703
@ WIMLIB_PROGRESS_MSG_EXTRACT_FILE_STRUCTURE
This message may be sent periodically (not for every file) while files and directories are being crea...
Definition wimlib.h:600
@ WIMLIB_PROGRESS_MSG_WRITE_METADATA_BEGIN
Per-image metadata is about to be written to the WIM file.
Definition wimlib.h:657
@ WIMLIB_PROGRESS_MSG_EXTRACT_IMAGE_BEGIN
A WIM image is about to be extracted.
Definition wimlib.h:585
@ WIMLIB_PROGRESS_MSG_SCAN_BEGIN
The directory or NTFS volume is about to be scanned for metadata.
Definition wimlib.h:634
@ WIMLIB_PROGRESS_MSG_SCAN_END
The directory or NTFS volume has been successfully scanned.
Definition wimlib.h:646
int wimlib_get_xml_data(WIMStruct *wim, void **buf_ret, size_t *bufsize_ret)
Read a WIM file's XML document into an in-memory buffer.
int wimlib_extract_xml_data(WIMStruct *wim, FILE *fp)
Similar to wimlib_get_xml_data(), but the XML document will be written to the specified standard C FI...
const wimlib_tchar * wimlib_get_image_property(const WIMStruct *wim, int image, const wimlib_tchar *property_name)
Since wimlib v1.8.3: get a per-image property from the WIM's XML document.
bool wimlib_image_name_in_use(const WIMStruct *wim, const wimlib_tchar *name)
Determine if an image name is already used by some image in the WIM.
int wimlib_resolve_image(WIMStruct *wim, const wimlib_tchar *image_name_or_num)
Translate a string specifying the name or number of an image in the WIM into the number of the image.
void wimlib_print_header(const WIMStruct *wim)
Print the header of the WIM file (intended for debugging only).
int(* wimlib_iterate_lookup_table_callback_t)(const struct wimlib_resource_entry *resource, void *user_ctx)
Type of a callback function to wimlib_iterate_lookup_table().
Definition wimlib.h:1676
void wimlib_print_available_images(const WIMStruct *wim, int image)
(Deprecated) Print information about one image, or all images, contained in a WIM.
int wimlib_get_wim_info(WIMStruct *wim, struct wimlib_wim_info *info)
Get basic information about a WIM file.
const wimlib_tchar * wimlib_get_image_name(const WIMStruct *wim, int image)
Get the name of the specified image.
int(* wimlib_iterate_dir_tree_callback_t)(const struct wimlib_dir_entry *dentry, void *user_ctx)
Type of a callback function to wimlib_iterate_dir_tree().
Definition wimlib.h:1669
int wimlib_iterate_lookup_table(WIMStruct *wim, int flags, wimlib_iterate_lookup_table_callback_t cb, void *user_ctx)
Iterate through the blob lookup table of a WIMStruct.
int wimlib_iterate_dir_tree(WIMStruct *wim, int image, const wimlib_tchar *path, int flags, wimlib_iterate_dir_tree_callback_t cb, void *user_ctx)
Iterate through a file or directory tree in a WIM image.
const wimlib_tchar * wimlib_get_image_description(const WIMStruct *wim, int image)
Get the description of the specified image.
int wimlib_overwrite(WIMStruct *wim, int write_flags, unsigned num_threads)
Commit a WIMStruct to disk, updating its backing file.
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_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.
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...
int wimlib_set_output_chunk_size(WIMStruct *wim, uint32_t chunk_size)
Set a WIMStruct's output compression chunk size.
int wimlib_set_output_compression_type(WIMStruct *wim, enum wimlib_compression_type ctype)
Set a WIMStruct's output compression type.
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...
Data for a WIMLIB_UPDATE_OP_ADD operation.
Definition wimlib.h:2444
int add_flags
Bitwise OR of WIMLIB_ADD_FLAG_* flags.
Definition wimlib.h:2457
wimlib_tchar * fs_source_path
Filesystem path to the file or directory tree to add.
Definition wimlib.h:2446
wimlib_tchar * config_file
Path to capture configuration file to use, or NULL if not specified.
Definition wimlib.h:2454
wimlib_tchar * wim_target_path
Destination path in the image.
Definition wimlib.h:2450
An array of these structures is passed to wimlib_add_image_multisource() to specify the sources from ...
Definition wimlib.h:1257
wimlib_tchar * wim_target_path
Destination path in the image.
Definition wimlib.h:1264
long reserved
Reserved; set to 0.
Definition wimlib.h:1267
wimlib_tchar * fs_source_path
Absolute or relative path to a file or directory on the external filesystem to be included in the ima...
Definition wimlib.h:1260
Data for a WIMLIB_UPDATE_OP_DELETE operation.
Definition wimlib.h:2461
wimlib_tchar * wim_path
The path to the file or directory within the image to delete.
Definition wimlib.h:2464
int delete_flags
Bitwise OR of WIMLIB_DELETE_FLAG_* flags.
Definition wimlib.h:2467
Structure passed to the wimlib_iterate_dir_tree() callback function.
Definition wimlib.h:1514
size_t depth
Depth of this directory entry, where 0 is the root, 1 is the root's children, ...,...
Definition wimlib.h:1529
struct wimlib_timespec last_access_time
Time this file was last accessed.
Definition wimlib.h:1603
struct wimlib_object_id object_id
Definition wimlib.h:1630
uint32_t unix_uid
The UNIX user ID of this file.
Definition wimlib.h:1608
int32_t last_write_time_high
High 32 bits of the seconds portion of the last write timestamp, filled in if wimlib_timespec....
Definition wimlib.h:1638
uint32_t reparse_tag
If the file is a reparse point (FILE_ATTRIBUTE_REPARSE_POINT set in the attributes),...
Definition wimlib.h:1576
int32_t last_access_time_high
High 32 bits of the seconds portion of the last access timestamp, filled in if wimlib_timespec....
Definition wimlib.h:1642
const char * security_descriptor
Pointer to the security descriptor for this file, in Windows SECURITY_DESCRIPTOR_RELATIVE format,...
Definition wimlib.h:1534
uint32_t unix_rdev
The UNIX device ID (major and minor number) of this file.
Definition wimlib.h:1626
uint64_t hard_link_group_id
A unique identifier for this file's inode.
Definition wimlib.h:1594
uint64_t reserved[4]
Definition wimlib.h:1646
uint32_t num_links
Number of links to this file's inode (hard links).
Definition wimlib.h:1582
int32_t creation_time_high
High 32 bits of the seconds portion of the creation timestamp, filled in if wimlib_timespec....
Definition wimlib.h:1634
struct wimlib_timespec last_write_time
Time this file was last written to.
Definition wimlib.h:1600
const wimlib_tchar * filename
Name of the file, or NULL if this file is unnamed.
Definition wimlib.h:1517
uint32_t attributes
File attributes, such as whether the file is a directory or not.
Definition wimlib.h:1558
uint32_t num_named_streams
Number of named data streams this file has.
Definition wimlib.h:1585
size_t security_descriptor_size
Size of the above security descriptor, in bytes.
Definition wimlib.h:1537
struct wimlib_stream_entry streams[]
Variable-length array of streams that make up this file.
Definition wimlib.h:1662
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:1521
const wimlib_tchar * full_path
Full path to this file within the image.
Definition wimlib.h:1525
uint32_t unix_gid
The UNIX group ID of this file.
Definition wimlib.h:1613
uint32_t unix_mode
The UNIX mode of this file.
Definition wimlib.h:1620
struct wimlib_timespec creation_time
Time this file was created.
Definition wimlib.h:1597
int32_t reserved2
Definition wimlib.h:1644
Since wimlib v1.9.1: an object ID, which is an extra piece of metadata that may be associated with a ...
Definition wimlib.h:1503
uint8_t birth_volume_id[WIMLIB_GUID_LEN]
Definition wimlib.h:1505
uint8_t object_id[WIMLIB_GUID_LEN]
Definition wimlib.h:1504
uint8_t birth_object_id[WIMLIB_GUID_LEN]
Definition wimlib.h:1506
uint8_t domain_id[WIMLIB_GUID_LEN]
Definition wimlib.h:1507
Valid on messages WIMLIB_PROGRESS_MSG_DONE_WITH_FILE.
Definition wimlib.h:1144
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:1163
Valid on messages WIMLIB_PROGRESS_MSG_EXTRACT_SPWM_PART_BEGIN, WIMLIB_PROGRESS_MSG_EXTRACT_IMAGE_BEGI...
Definition wimlib.h:944
uint32_t extract_flags
Extraction flags being used.
Definition wimlib.h:951
uint64_t completed_bytes
The number of bytes of file data that have been extracted so far.
Definition wimlib.h:974
uint64_t end_file_count
For WIMLIB_PROGRESS_MSG_EXTRACT_FILE_STRUCTURE and WIMLIB_PROGRESS_MSG_EXTRACT_METADATA messages,...
Definition wimlib.h:1021
uint64_t current_file_count
For WIMLIB_PROGRESS_MSG_EXTRACT_FILE_STRUCTURE and WIMLIB_PROGRESS_MSG_EXTRACT_METADATA messages,...
Definition wimlib.h:1003
const wimlib_tchar * image_name
Name of the image from which files are being extracted, or the empty string if the image is unnamed.
Definition wimlib.h:960
uint32_t total_parts
Currently only used for WIMLIB_PROGRESS_MSG_EXTRACT_SPWM_PART_BEGIN.
Definition wimlib.h:992
uint64_t total_bytes
The number of bytes of file data that will be extracted.
Definition wimlib.h:970
const wimlib_tchar * wimfile_name
If the WIMStruct from which the extraction being performed has a backing file, then this is an absolu...
Definition wimlib.h:956
uint64_t completed_streams
The number of file streams that have been extracted so far.
Definition wimlib.h:984
uint32_t part_number
Currently only used for WIMLIB_PROGRESS_MSG_EXTRACT_SPWM_PART_BEGIN.
Definition wimlib.h:988
const wimlib_tchar * target
Path to the directory or NTFS volume to which the files are being extracted.
Definition wimlib.h:964
uint8_t guid[WIMLIB_GUID_LEN]
Currently only used for WIMLIB_PROGRESS_MSG_EXTRACT_SPWM_PART_BEGIN.
Definition wimlib.h:996
const wimlib_tchar * reserved
Reserved.
Definition wimlib.h:967
uint32_t image
The 1-based index of the image from which files are being extracted.
Definition wimlib.h:948
uint64_t total_streams
The number of file streams that will be extracted.
Definition wimlib.h:980
Valid on messages WIMLIB_PROGRESS_MSG_HANDLE_ERROR.
Definition wimlib.h:1210
bool will_ignore
Indicates whether the error will be ignored or not.
Definition wimlib.h:1224
const wimlib_tchar * path
Path to the file for which the error occurred, or NULL if not relevant.
Definition wimlib.h:1214
int error_code
The wimlib error code associated with the error.
Definition wimlib.h:1217
Valid on messages WIMLIB_PROGRESS_MSG_VERIFY_INTEGRITY and WIMLIB_PROGRESS_MSG_CALC_INTEGRITY.
Definition wimlib.h:1052
uint64_t completed_bytes
The number of bytes that have been checksummed so far.
Definition wimlib.h:1060
uint32_t total_chunks
The number of individually checksummed "chunks" the integrity-checked region is divided into.
Definition wimlib.h:1064
uint64_t total_bytes
The number of bytes in the WIM file that are covered by integrity checks.
Definition wimlib.h:1056
uint32_t completed_chunks
The number of chunks that have been checksummed so far.
Definition wimlib.h:1068
uint32_t chunk_size
The size of each individually checksummed "chunk" in the integrity-checked region.
Definition wimlib.h:1072
const wimlib_tchar * filename
For WIMLIB_PROGRESS_MSG_VERIFY_INTEGRITY messages, this is the path to the WIM file being checked.
Definition wimlib.h:1076
Valid on messages WIMLIB_PROGRESS_MSG_RENAME.
Definition wimlib.h:1025
const wimlib_tchar * from
Name of the temporary file that the WIM was written to.
Definition wimlib.h:1027
const wimlib_tchar * to
Name of the original WIM file to which the temporary file is being renamed.
Definition wimlib.h:1031
Valid on messages WIMLIB_PROGRESS_MSG_REPLACE_FILE_IN_WIM
Definition wimlib.h:1110
const wimlib_tchar * path_in_wim
Path to the file in the image that is being replaced
Definition wimlib.h:1112
Valid on messages WIMLIB_PROGRESS_MSG_SCAN_BEGIN, WIMLIB_PROGRESS_MSG_SCAN_DENTRY,...
Definition wimlib.h:856
const wimlib_tchar * wim_target_path
Target path in the image.
Definition wimlib.h:903
uint64_t num_bytes_scanned
The number of bytes of file data detected so far, not counting excluded/unsupported files.
Definition wimlib.h:922
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:868
uint64_t num_nondirs_scanned
The number of non-directories scanned so far, not counting excluded/unsupported files.
Definition wimlib.h:918
uint64_t num_dirs_scanned
The number of directories scanned so far, not counting excluded/unsupported files.
Definition wimlib.h:914
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:909
@ WIMLIB_SCAN_DENTRY_UNSUPPORTED
File is being excluded from capture due to being of an unsupported type.
Definition wimlib.h:882
@ WIMLIB_SCAN_DENTRY_OK
File looks okay and will be captured.
Definition wimlib.h:874
@ WIMLIB_SCAN_DENTRY_EXCLUDED
File is being excluded from capture due to the capture configuration.
Definition wimlib.h:878
@ WIMLIB_SCAN_DENTRY_NOT_FIXED_SYMLINK
Reparse-point fixups are enabled, but the file is an absolute symbolic link or junction that does not...
Definition wimlib.h:896
@ WIMLIB_SCAN_DENTRY_FIXED_SYMLINK
The file is an absolute symbolic link or junction that points into the capture directory,...
Definition wimlib.h:890
enum wimlib_progress_info::wimlib_progress_info_scan::@0 status
Dentry scan status, valid on WIMLIB_PROGRESS_MSG_SCAN_DENTRY.
const wimlib_tchar * source
Top-level directory being scanned; or, when capturing an NTFS volume with WIMLIB_ADD_FLAG_NTFS,...
Definition wimlib.h:862
Valid on messages WIMLIB_PROGRESS_MSG_SPLIT_BEGIN_PART and WIMLIB_PROGRESS_MSG_SPLIT_END_PART.
Definition wimlib.h:1081
uint64_t total_bytes
Total size of the original WIM's file and metadata resources (compressed).
Definition wimlib.h:1084
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:1094
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:1089
unsigned total_parts
Total number of split WIM parts that are being written.
Definition wimlib.h:1097
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:1106
Valid on messages WIMLIB_PROGRESS_MSG_TEST_FILE_EXCLUSION.
Definition wimlib.h:1184
bool will_exclude
Indicates whether the file or directory will be excluded from capture or not.
Definition wimlib.h:1206
const wimlib_tchar * path
Path to the file for which exclusion is being tested.
Definition wimlib.h:1198
Valid on messages WIMLIB_PROGRESS_MSG_UNMOUNT_BEGIN.
Definition wimlib.h:1125
uint32_t unmount_flags
Flags passed to wimlib_unmount_image().
Definition wimlib.h:1140
const wimlib_tchar * mountpoint
Path to directory being unmounted
Definition wimlib.h:1127
uint32_t mount_flags
Flags that were passed to wimlib_mount_image() when the mountpoint was set up.
Definition wimlib.h:1137
const wimlib_tchar * mounted_wim
Path to WIM file being unmounted
Definition wimlib.h:1130
uint32_t mounted_image
1-based index of image being unmounted.
Definition wimlib.h:1133
Valid on messages WIMLIB_PROGRESS_MSG_UPDATE_BEGIN_COMMAND and WIMLIB_PROGRESS_MSG_UPDATE_END_COMMAND...
Definition wimlib.h:1036
const struct wimlib_update_command * command
Pointer to the update command that will be executed or has just been executed.
Definition wimlib.h:1039
size_t total_commands
Number of update commands that are being executed as part of this call to wimlib_update_image().
Definition wimlib.h:1047
size_t completed_commands
Number of update commands that have been completed so far.
Definition wimlib.h:1043
Valid on messages WIMLIB_PROGRESS_MSG_BEGIN_VERIFY_IMAGE and WIMLIB_PROGRESS_MSG_END_VERIFY_IMAGE.
Definition wimlib.h:1168
const wimlib_tchar * wimfile
Definition wimlib.h:1169
Valid on messages WIMLIB_PROGRESS_MSG_VERIFY_STREAMS.
Definition wimlib.h:1175
const wimlib_tchar * wimfile
Definition wimlib.h:1176
Valid on messages WIMLIB_PROGRESS_MSG_WIMBOOT_EXCLUDE
Definition wimlib.h:1116
const wimlib_tchar * path_in_wim
Path to the file in the image
Definition wimlib.h:1118
const wimlib_tchar * extraction_path
Path to which the file is being extracted
Definition wimlib.h:1121
Valid on the message WIMLIB_PROGRESS_MSG_WRITE_STREAMS.
Definition wimlib.h:808
uint64_t completed_bytes
The number of bytes of file data that have been written so far.
Definition wimlib.h:829
uint64_t total_bytes
An upper bound on the number of bytes of file data that will be written.
Definition wimlib.h:815
int32_t compression_type
The compression type being used, as one of the wimlib_compression_type constants.
Definition wimlib.h:842
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:847
uint64_t total_streams
An upper bound on the number of distinct file data "blobs" that will be written.
Definition wimlib.h:823
uint32_t num_threads
The number of threads being used for data compression; or, if no compression is being performed,...
Definition wimlib.h:838
uint32_t completed_parts
This is currently broken and will always be 0.
Definition wimlib.h:850
uint64_t completed_streams
The number of distinct file data "blobs" that have been written so far.
Definition wimlib.h:834
Data for a WIMLIB_UPDATE_OP_RENAME operation.
Definition wimlib.h:2471
wimlib_tchar * wim_target_path
The path to the destination file or directory within the image.
Definition wimlib.h:2477
wimlib_tchar * wim_source_path
The path to the source file or directory within the image.
Definition wimlib.h:2474
int rename_flags
Reserved; set to 0.
Definition wimlib.h:2480
Information about a "blob", which is a fixed length sequence of binary data.
Definition wimlib.h:1413
uint32_t reserved_flags
Definition wimlib.h:1459
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:1439
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:1471
uint8_t sha1_hash[20]
The SHA-1 message digest of the blob's uncompressed contents.
Definition wimlib.h:1430
uint32_t is_free
Definition wimlib.h:1448
uint64_t uncompressed_size
If this blob is not missing, then this is the uncompressed size of this blob in bytes.
Definition wimlib.h:1417
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:1463
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:1421
uint32_t is_compressed
1 iff this blob is located in a non-solid compressed WIM resource.
Definition wimlib.h:1443
uint64_t reserved[1]
Definition wimlib.h:1473
uint32_t is_missing
1 iff a blob with this hash was not found in the blob lookup table of the WIMStruct.
Definition wimlib.h:1454
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:1427
uint32_t is_spanned
Definition wimlib.h:1449
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:1434
uint32_t is_metadata
1 iff this blob contains the metadata for an image.
Definition wimlib.h:1446
uint32_t packed
1 iff this blob is located in a solid resource.
Definition wimlib.h:1457
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:1467
Information about a stream of a particular file in the WIM.
Definition wimlib.h:1487
struct wimlib_resource_entry resource
Info about this stream's data, such as its hash and size if known.
Definition wimlib.h:1493
uint64_t reserved[4]
Definition wimlib.h:1495
const wimlib_tchar * stream_name
Name of the stream, or NULL if the stream is unnamed.
Definition wimlib.h:1490
Specification of an update to perform on a WIM image.
Definition wimlib.h:2484
struct wimlib_delete_command delete_
Definition wimlib.h:2490
struct wimlib_add_command add
Definition wimlib.h:2489
struct wimlib_rename_command rename
Definition wimlib.h:2492
enum wimlib_update_op op
Definition wimlib.h:2486
General information about a WIM file.
Definition wimlib.h:1311
uint32_t is_marked_readonly
1 iff the "readonly" flag is set in this WIM's header
Definition wimlib.h:1363
uint32_t has_integrity_table
1 iff this WIM file has an integrity table.
Definition wimlib.h:1348
uint32_t reserved[9]
Definition wimlib.h:1380
uint32_t wim_version
The version of the WIM file format used in this WIM file.
Definition wimlib.h:1325
uint32_t is_readonly
1 iff this WIM file is considered readonly for any reason (e.g.
Definition wimlib.h:1357
uint32_t spanned
1 iff the "spanned" flag is set in this WIM's header
Definition wimlib.h:1366
uint32_t resource_only
1 iff the "resource only" flag is set in this WIM's header
Definition wimlib.h:1375
uint32_t chunk_size
The default compression chunk size of resources in this WIM file.
Definition wimlib.h:1329
uint32_t has_rpfix
1 iff the "reparse point fix" flag is set in this WIM's header
Definition wimlib.h:1360
uint32_t image_count
The number of images in this WIM file.
Definition wimlib.h:1318
uint32_t opened_from_file
1 iff this info struct is for a WIMStruct that has a backing file.
Definition wimlib.h:1352
uint16_t total_parts
For split WIMs, the total number of parts in the split WIM; otherwise 1.
Definition wimlib.h:1337
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:1322
uint16_t part_number
For split WIMs, the 1-based index of this part within the split WIM; otherwise 1.
Definition wimlib.h:1333
uint32_t metadata_only
1 iff the "metadata only" flag is set in this WIM's header
Definition wimlib.h:1372
uint32_t pipable
1 iff this WIM file is pipable (see WIMLIB_WRITE_FLAG_PIPABLE).
Definition wimlib.h:1378
uint32_t reserved_flags
Definition wimlib.h:1379
uint8_t guid[WIMLIB_GUID_LEN]
The globally unique identifier for this WIM.
Definition wimlib.h:1315
uint32_t write_in_progress
1 iff the "write in progress" flag is set in this WIM's header
Definition wimlib.h:1369
uint64_t total_bytes
The size of this WIM file in bytes, excluding the XML data and integrity table.
Definition wimlib.h:1345
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:1341
A pointer to this union is passed to the user-supplied wimlib_progress_func_t progress function.
Definition wimlib.h:803
struct wimlib_progress_info::wimlib_progress_info_test_file_exclusion test_file_exclusion
struct wimlib_progress_info::wimlib_progress_info_update update
struct wimlib_progress_info::wimlib_progress_info_handle_error handle_error
struct wimlib_progress_info::wimlib_progress_info_replace replace
struct wimlib_progress_info::wimlib_progress_info_verify_streams verify_streams
struct wimlib_progress_info::wimlib_progress_info_extract extract
struct wimlib_progress_info::wimlib_progress_info_rename rename
struct wimlib_progress_info::wimlib_progress_info_scan scan
struct wimlib_progress_info::wimlib_progress_info_write_streams write_streams
struct wimlib_progress_info::wimlib_progress_info_unmount unmount
struct wimlib_progress_info::wimlib_progress_info_integrity integrity
struct wimlib_progress_info::wimlib_progress_info_split split
struct wimlib_progress_info::wimlib_progress_info_wimboot_exclude wimboot_exclude
struct wimlib_progress_info::wimlib_progress_info_done_with_file done_with_file
struct wimlib_progress_info::wimlib_progress_info_verify_image verify_image