wimlib
wimlib.h
Go to the documentation of this file.
1
388#ifndef _WIMLIB_H
389#define _WIMLIB_H
390
391#include <stdio.h>
392#include <stddef.h>
393#ifndef __cplusplus
394# if defined(_MSC_VER) && _MSC_VER < 1800 /* VS pre-2013? */
395 typedef unsigned char bool;
396# else
397# include <stdbool.h>
398# endif
399#endif
400#include <stdint.h>
401#include <time.h>
402
403#ifdef BUILDING_WIMLIB
404# ifdef _WIN32
405# define WIMLIBAPI __declspec(dllexport)
406# else
407# define WIMLIBAPI __attribute__((visibility("default")))
408# endif
409#else
410# define WIMLIBAPI
411#endif
412
417#define WIMLIB_MAJOR_VERSION 1
418
420#define WIMLIB_MINOR_VERSION 14
421
423#define WIMLIB_PATCH_VERSION 1
424
425#ifdef __cplusplus
426extern "C" {
427#endif
428
429/*
430 * To represent file timestamps, wimlib's API originally used the POSIX 'struct
431 * timespec'. This was a mistake because when building wimlib for 32-bit
432 * Windows with MinGW we ended up originally using 32-bit time_t which isn't
433 * year 2038-safe, and therefore we had to later add fields like
434 * 'creation_time_high' to hold the high 32 bits of each timestamp. Moreover,
435 * old Visual Studio versions did not define struct timespec, while newer ones
436 * define it but with 64-bit tv_sec. So to at least avoid a missing or
437 * incompatible 'struct timespec' definition, define the correct struct
438 * ourselves when this header is included on Windows.
439 */
440#ifdef _WIN32
441struct wimlib_timespec {
442 /* Seconds since start of UNIX epoch (January 1, 1970) */
443#ifdef _WIN64
444 int64_t tv_sec;
445#else
446 int32_t tv_sec;
447#endif
448 /* Nanoseconds (0-999999999) */
449 int32_t tv_nsec;
450};
451#else
452# define wimlib_timespec timespec /* standard definition */
453#endif
454
459#ifndef WIMLIB_WIMSTRUCT_DECLARED
460typedef struct WIMStruct WIMStruct;
461#define WIMLIB_WIMSTRUCT_DECLARED
462#endif
463
464#ifdef _WIN32
465typedef wchar_t wimlib_tchar;
466#else
468typedef char wimlib_tchar;
469#endif
470
471#ifdef _WIN32
474# define WIMLIB_WIM_PATH_SEPARATOR '\\'
475# define WIMLIB_WIM_PATH_SEPARATOR_STRING L"\\"
476#else
479# define WIMLIB_WIM_PATH_SEPARATOR '/'
480# define WIMLIB_WIM_PATH_SEPARATOR_STRING "/"
481#endif
482
485#define WIMLIB_WIM_ROOT_PATH WIMLIB_WIM_PATH_SEPARATOR_STRING
486
489#define WIMLIB_IS_WIM_ROOT_PATH(path) \
490 ((path)[0] == WIMLIB_WIM_PATH_SEPARATOR && \
491 (path)[1] == 0)
492
494#define WIMLIB_GUID_LEN 16
495
515
535
557
580};
581
589
595
602
610
615
619
627
632
637
644
650
656
664
668
673
680
687
693
698
702
708
714
721
729
733
739
743
748
752
766
788};
789
797
801
805};
806
814
819
825 uint64_t total_bytes;
826
834
841
846
849 uint32_t num_threads;
850
854
858 uint32_t total_parts;
859
862
867
872
878
884
887 enum {
890
894
898
906
913
914 union {
919
925 };
926
930
934
939
960
963 uint32_t image;
964
967
972
976
980
983
985 uint64_t total_bytes;
986
990
996
1000
1003 uint32_t part_number;
1004
1007 uint32_t total_parts;
1008
1012
1019
1038
1043
1048
1055
1059
1064
1068
1071 uint64_t total_bytes;
1072
1076
1080
1084
1087 uint32_t chunk_size;
1088
1093
1099 uint64_t total_bytes;
1100
1105
1110
1112 unsigned total_parts;
1113
1123
1129
1134
1138
1143
1146
1149
1152 uint32_t mount_flags;
1153
1157
1180
1188
1193 uint64_t total_bytes;
1197
1200
1214
1223
1226
1230
1233
1241};
1242
1261typedef enum wimlib_progress_status
1263 union wimlib_progress_info *info,
1264 void *progctx);
1265
1276
1280
1283};
1284
1295#define WIMLIB_CHANGE_READONLY_FLAG 0x00000001
1296
1299#define WIMLIB_CHANGE_GUID 0x00000002
1300
1303#define WIMLIB_CHANGE_BOOT_INDEX 0x00000004
1304
1311#define WIMLIB_CHANGE_RPFIX_FLAG 0x00000008
1312
1327
1331
1333 uint32_t image_count;
1334
1337 uint32_t boot_index;
1338
1340 uint32_t wim_version;
1341
1344 uint32_t chunk_size;
1345
1348 uint16_t part_number;
1349
1352 uint16_t total_parts;
1353
1357
1360 uint64_t total_bytes;
1361
1364
1367 uint32_t opened_from_file : 1;
1368
1372 uint32_t is_readonly : 1;
1373
1375 uint32_t has_rpfix : 1;
1376
1379
1381 uint32_t spanned : 1;
1382
1384 uint32_t write_in_progress : 1;
1385
1387 uint32_t metadata_only : 1;
1388
1390 uint32_t resource_only : 1;
1391
1393 uint32_t pipable : 1;
1394 uint32_t reserved_flags : 22;
1395 uint32_t reserved[9];
1396};
1397
1432
1436
1440
1445 uint64_t offset;
1446
1449 uint8_t sha1_hash[20];
1450
1453 uint32_t part_number;
1454
1459
1462 uint32_t is_compressed : 1;
1463
1465 uint32_t is_metadata : 1;
1466
1467 uint32_t is_free : 1;
1468 uint32_t is_spanned : 1;
1469
1473 uint32_t is_missing : 1;
1474
1476 uint32_t packed : 1;
1477
1478 uint32_t reserved_flags : 26;
1479
1483
1487
1491
1492 uint64_t reserved[1];
1493};
1494
1507
1510
1513
1514 uint64_t reserved[4];
1515};
1516
1527};
1528
1537
1541
1545
1548 size_t depth;
1549
1554
1557
1558#define WIMLIB_FILE_ATTRIBUTE_READONLY 0x00000001
1559#define WIMLIB_FILE_ATTRIBUTE_HIDDEN 0x00000002
1560#define WIMLIB_FILE_ATTRIBUTE_SYSTEM 0x00000004
1561#define WIMLIB_FILE_ATTRIBUTE_DIRECTORY 0x00000010
1562#define WIMLIB_FILE_ATTRIBUTE_ARCHIVE 0x00000020
1563#define WIMLIB_FILE_ATTRIBUTE_DEVICE 0x00000040
1564#define WIMLIB_FILE_ATTRIBUTE_NORMAL 0x00000080
1565#define WIMLIB_FILE_ATTRIBUTE_TEMPORARY 0x00000100
1566#define WIMLIB_FILE_ATTRIBUTE_SPARSE_FILE 0x00000200
1567#define WIMLIB_FILE_ATTRIBUTE_REPARSE_POINT 0x00000400
1568#define WIMLIB_FILE_ATTRIBUTE_COMPRESSED 0x00000800
1569#define WIMLIB_FILE_ATTRIBUTE_OFFLINE 0x00001000
1570#define WIMLIB_FILE_ATTRIBUTE_NOT_CONTENT_INDEXED 0x00002000
1571#define WIMLIB_FILE_ATTRIBUTE_ENCRYPTED 0x00004000
1572#define WIMLIB_FILE_ATTRIBUTE_VIRTUAL 0x00010000
1577 uint32_t attributes;
1578
1579#define WIMLIB_REPARSE_TAG_RESERVED_ZERO 0x00000000
1580#define WIMLIB_REPARSE_TAG_RESERVED_ONE 0x00000001
1581#define WIMLIB_REPARSE_TAG_MOUNT_POINT 0xA0000003
1582#define WIMLIB_REPARSE_TAG_HSM 0xC0000004
1583#define WIMLIB_REPARSE_TAG_HSM2 0x80000006
1584#define WIMLIB_REPARSE_TAG_DRIVER_EXTENDER 0x80000005
1585#define WIMLIB_REPARSE_TAG_SIS 0x80000007
1586#define WIMLIB_REPARSE_TAG_DFS 0x8000000A
1587#define WIMLIB_REPARSE_TAG_DFSR 0x80000012
1588#define WIMLIB_REPARSE_TAG_FILTER_MANAGER 0x8000000B
1589#define WIMLIB_REPARSE_TAG_WOF 0x80000017
1590#define WIMLIB_REPARSE_TAG_SYMLINK 0xA000000C
1595 uint32_t reparse_tag;
1596
1601 uint32_t num_links;
1602
1605
1614
1617
1620
1623
1627 uint32_t unix_uid;
1628
1632 uint32_t unix_gid;
1633
1639 uint32_t unix_mode;
1640
1645 uint32_t unix_rdev;
1646
1647 /* The object ID of this file, if any. Only valid if
1648 * object_id.object_id is not all zeroes. */
1650
1654
1658
1662
1663 int32_t reserved2;
1664
1665 uint64_t reserved[4];
1666
1682};
1683
1688typedef int (*wimlib_iterate_dir_tree_callback_t)(const struct wimlib_dir_entry *dentry,
1689 void *user_ctx);
1690
1696 void *user_ctx);
1697
1700#define WIMLIB_ITERATE_DIR_TREE_FLAG_RECURSIVE 0x00000001
1701
1704#define WIMLIB_ITERATE_DIR_TREE_FLAG_CHILDREN 0x00000002
1705
1711#define WIMLIB_ITERATE_DIR_TREE_FLAG_RESOURCES_NEEDED 0x00000004
1712
1713
1727#define WIMLIB_ADD_FLAG_NTFS 0x00000001
1728
1731#define WIMLIB_ADD_FLAG_DEREFERENCE 0x00000002
1732
1736#define WIMLIB_ADD_FLAG_VERBOSE 0x00000004
1737
1746#define WIMLIB_ADD_FLAG_BOOT 0x00000008
1747
1753#define WIMLIB_ADD_FLAG_UNIX_DATA 0x00000010
1754
1757#define WIMLIB_ADD_FLAG_NO_ACLS 0x00000020
1758
1764#define WIMLIB_ADD_FLAG_STRICT_ACLS 0x00000040
1765
1770#define WIMLIB_ADD_FLAG_EXCLUDE_VERBOSE 0x00000080
1771
1779#define WIMLIB_ADD_FLAG_RPFIX 0x00000100
1780
1782#define WIMLIB_ADD_FLAG_NORPFIX 0x00000200
1783
1788#define WIMLIB_ADD_FLAG_NO_UNSUPPORTED_EXCLUDE 0x00000400
1789
1805#define WIMLIB_ADD_FLAG_WINCONFIG 0x00000800
1806
1835#define WIMLIB_ADD_FLAG_WIMBOOT 0x00001000
1836
1843#define WIMLIB_ADD_FLAG_NO_REPLACE 0x00002000
1844
1852#define WIMLIB_ADD_FLAG_TEST_FILE_EXCLUSION 0x00004000
1853
1864#define WIMLIB_ADD_FLAG_SNAPSHOT 0x00008000
1865
1874#define WIMLIB_ADD_FLAG_FILE_PATHS_UNNEEDED 0x00010000
1875
1881#define WIMLIB_DELETE_FLAG_FORCE 0x00000001
1882
1885#define WIMLIB_DELETE_FLAG_RECURSIVE 0x00000002
1886
1897#define WIMLIB_EXPORT_FLAG_BOOT 0x00000001
1898
1902#define WIMLIB_EXPORT_FLAG_NO_NAMES 0x00000002
1903
1905#define WIMLIB_EXPORT_FLAG_NO_DESCRIPTIONS 0x00000004
1906
1910#define WIMLIB_EXPORT_FLAG_GIFT 0x00000008
1911
1927#define WIMLIB_EXPORT_FLAG_WIMBOOT 0x00000010
1928
1942#define WIMLIB_EXTRACT_FLAG_NTFS 0x00000001
1943
1946#define WIMLIB_EXTRACT_FLAG_RECOVER_DATA 0x00000002
1947
1950#define WIMLIB_EXTRACT_FLAG_UNIX_DATA 0x00000020
1951
1954#define WIMLIB_EXTRACT_FLAG_NO_ACLS 0x00000040
1955
1965#define WIMLIB_EXTRACT_FLAG_STRICT_ACLS 0x00000080
1966
1975#define WIMLIB_EXTRACT_FLAG_RPFIX 0x00000100
1976
1980#define WIMLIB_EXTRACT_FLAG_NORPFIX 0x00000200
1981
1984#define WIMLIB_EXTRACT_FLAG_TO_STDOUT 0x00000400
1985
1995#define WIMLIB_EXTRACT_FLAG_REPLACE_INVALID_FILENAMES 0x00000800
1996
2005#define WIMLIB_EXTRACT_FLAG_ALL_CASE_CONFLICTS 0x00001000
2006
2010#define WIMLIB_EXTRACT_FLAG_STRICT_TIMESTAMPS 0x00002000
2011
2014#define WIMLIB_EXTRACT_FLAG_STRICT_SHORT_NAMES 0x00004000
2015
2020#define WIMLIB_EXTRACT_FLAG_STRICT_SYMLINKS 0x00008000
2021
2035#define WIMLIB_EXTRACT_FLAG_GLOB_PATHS 0x00040000
2036
2040#define WIMLIB_EXTRACT_FLAG_STRICT_GLOB 0x00080000
2041
2047#define WIMLIB_EXTRACT_FLAG_NO_ATTRIBUTES 0x00100000
2048
2055#define WIMLIB_EXTRACT_FLAG_NO_PRESERVE_DIR_STRUCTURE 0x00200000
2056
2063#define WIMLIB_EXTRACT_FLAG_WIMBOOT 0x00400000
2064
2073#define WIMLIB_EXTRACT_FLAG_COMPACT_XPRESS4K 0x01000000
2074
2077#define WIMLIB_EXTRACT_FLAG_COMPACT_XPRESS8K 0x02000000
2078
2081#define WIMLIB_EXTRACT_FLAG_COMPACT_XPRESS16K 0x04000000
2082
2085#define WIMLIB_EXTRACT_FLAG_COMPACT_LZX 0x08000000
2086
2092#define WIMLIB_MOUNT_FLAG_READWRITE 0x00000001
2093
2095#define WIMLIB_MOUNT_FLAG_DEBUG 0x00000002
2096
2098#define WIMLIB_MOUNT_FLAG_STREAM_INTERFACE_NONE 0x00000004
2099
2103#define WIMLIB_MOUNT_FLAG_STREAM_INTERFACE_XATTR 0x00000008
2104
2107#define WIMLIB_MOUNT_FLAG_STREAM_INTERFACE_WINDOWS 0x00000010
2108
2110#define WIMLIB_MOUNT_FLAG_UNIX_DATA 0x00000020
2111
2114#define WIMLIB_MOUNT_FLAG_ALLOW_OTHER 0x00000040
2115
2126#define WIMLIB_OPEN_FLAG_CHECK_INTEGRITY 0x00000001
2127
2131#define WIMLIB_OPEN_FLAG_ERROR_IF_SPLIT 0x00000002
2132
2141#define WIMLIB_OPEN_FLAG_WRITE_ACCESS 0x00000004
2142
2149#define WIMLIB_UNMOUNT_FLAG_CHECK_INTEGRITY 0x00000001
2150
2153#define WIMLIB_UNMOUNT_FLAG_COMMIT 0x00000002
2154
2157#define WIMLIB_UNMOUNT_FLAG_REBUILD 0x00000004
2158
2161#define WIMLIB_UNMOUNT_FLAG_RECOMPRESS 0x00000008
2162
2171#define WIMLIB_UNMOUNT_FLAG_FORCE 0x00000010
2172
2177#define WIMLIB_UNMOUNT_FLAG_NEW_IMAGE 0x00000020
2178
2185#define WIMLIB_UPDATE_FLAG_SEND_PROGRESS 0x00000001
2186
2199#define WIMLIB_WRITE_FLAG_CHECK_INTEGRITY 0x00000001
2200
2206#define WIMLIB_WRITE_FLAG_NO_CHECK_INTEGRITY 0x00000002
2207
2220#define WIMLIB_WRITE_FLAG_PIPABLE 0x00000004
2221
2226#define WIMLIB_WRITE_FLAG_NOT_PIPABLE 0x00000008
2227
2253#define WIMLIB_WRITE_FLAG_RECOMPRESS 0x00000010
2254
2268#define WIMLIB_WRITE_FLAG_FSYNC 0x00000020
2269
2282#define WIMLIB_WRITE_FLAG_REBUILD 0x00000040
2283
2293#define WIMLIB_WRITE_FLAG_SOFT_DELETE 0x00000080
2294
2304#define WIMLIB_WRITE_FLAG_IGNORE_READONLY_FLAG 0x00000100
2305
2312#define WIMLIB_WRITE_FLAG_SKIP_EXTERNAL_WIMS 0x00000200
2313
2315#define WIMLIB_WRITE_FLAG_STREAMS_OK 0x00000400
2316
2323#define WIMLIB_WRITE_FLAG_RETAIN_GUID 0x00000800
2324
2360#define WIMLIB_WRITE_FLAG_SOLID 0x00001000
2361
2367#define WIMLIB_WRITE_FLAG_SEND_DONE_WITH_FILE_MESSAGES 0x00002000
2368
2374#define WIMLIB_WRITE_FLAG_NO_SOLID_SORT 0x00004000
2375
2392#define WIMLIB_WRITE_FLAG_UNSAFE_COMPACT 0x00008000
2393
2399#define WIMLIB_INIT_FLAG_ASSUME_UTF8 0x00000001
2400
2409#define WIMLIB_INIT_FLAG_DONT_ACQUIRE_PRIVILEGES 0x00000002
2410
2416#define WIMLIB_INIT_FLAG_STRICT_CAPTURE_PRIVILEGES 0x00000004
2417
2423#define WIMLIB_INIT_FLAG_STRICT_APPLY_PRIVILEGES 0x00000008
2424
2427#define WIMLIB_INIT_FLAG_DEFAULT_CASE_SENSITIVE 0x00000010
2428
2431#define WIMLIB_INIT_FLAG_DEFAULT_CASE_INSENSITIVE 0x00000020
2432
2439#define WIMLIB_REF_FLAG_GLOB_ENABLE 0x00000001
2440
2448#define WIMLIB_REF_FLAG_GLOB_ERR_ON_NOMATCH 0x00000002
2449
2458
2461
2464};
2465
2470
2474
2478
2481};
2482
2485
2488
2491};
2492
2495
2498
2501
2504};
2505
2508
2510
2511 union {
2513 struct wimlib_delete_command delete_; /* Underscore is for C++
2514 compatibility. */
2516 };
2517};
2518
2611};
2612
2613
2615#define WIMLIB_NO_IMAGE 0
2616
2618#define WIMLIB_ALL_IMAGES (-1)
2619
2650WIMLIBAPI int
2652 const wimlib_tchar *name,
2653 int *new_idx_ret);
2654
2706WIMLIBAPI int
2708 const wimlib_tchar *source,
2709 const wimlib_tchar *name,
2710 const wimlib_tchar *config_file,
2711 int add_flags);
2712
2723WIMLIBAPI int
2725 const struct wimlib_capture_source *sources,
2726 size_t num_sources,
2727 const wimlib_tchar *name,
2728 const wimlib_tchar *config_file,
2729 int add_flags);
2730
2740WIMLIBAPI int
2742 const wimlib_tchar *fs_source_path,
2743 const wimlib_tchar *wim_target_path, int add_flags);
2744
2773WIMLIBAPI int
2775
2804WIMLIBAPI int
2806
2815WIMLIBAPI int
2817 const wimlib_tchar *path, int delete_flags);
2818
2887WIMLIBAPI int
2888wimlib_export_image(WIMStruct *src_wim, int src_image,
2889 WIMStruct *dest_wim,
2890 const wimlib_tchar *dest_name,
2891 const wimlib_tchar *dest_description,
2892 int export_flags);
2893
3006WIMLIBAPI int
3008 const wimlib_tchar *target, int extract_flags);
3009
3048WIMLIBAPI int
3050 const wimlib_tchar *image_num_or_name,
3051 const wimlib_tchar *target, int extract_flags);
3052
3062WIMLIBAPI int
3064 const wimlib_tchar *image_num_or_name,
3065 const wimlib_tchar *target,
3066 int extract_flags,
3067 wimlib_progress_func_t progfunc,
3068 void *progctx);
3069
3089WIMLIBAPI int
3091 const wimlib_tchar *target,
3092 const wimlib_tchar *path_list_file,
3093 int extract_flags);
3094
3164WIMLIBAPI int
3166 int image,
3167 const wimlib_tchar *target,
3168 const wimlib_tchar * const *paths,
3169 size_t num_paths,
3170 int extract_flags);
3171
3186WIMLIBAPI int
3188
3201WIMLIBAPI void
3203
3217WIMLIBAPI const wimlib_tchar *
3219
3233WIMLIBAPI const wimlib_tchar *
3235
3242WIMLIBAPI const wimlib_tchar *
3244
3253WIMLIBAPI const wimlib_tchar *
3254wimlib_get_image_name(const WIMStruct *wim, int image);
3255
3284WIMLIBAPI const wimlib_tchar *
3286 const wimlib_tchar *property_name);
3287
3299WIMLIBAPI uint32_t
3301
3309WIMLIBAPI const wimlib_tchar *
3311
3326WIMLIBAPI int
3328
3356WIMLIBAPI int
3357wimlib_get_xml_data(WIMStruct *wim, void **buf_ret, size_t *bufsize_ret);
3358
3377WIMLIBAPI int
3378wimlib_global_init(int init_flags);
3379
3386WIMLIBAPI void
3388
3405WIMLIBAPI bool
3407
3452WIMLIBAPI int
3454 int flags,
3455 wimlib_iterate_dir_tree_callback_t cb, void *user_ctx);
3456
3486WIMLIBAPI int
3489 void *user_ctx);
3490
3527WIMLIBAPI int
3528wimlib_join(const wimlib_tchar * const *swms,
3529 unsigned num_swms,
3530 const wimlib_tchar *output_path,
3531 int swm_open_flags,
3532 int wim_write_flags);
3533
3545WIMLIBAPI int
3547 unsigned num_swms,
3548 const wimlib_tchar *output_path,
3549 int swm_open_flags,
3550 int wim_write_flags,
3551 wimlib_progress_func_t progfunc,
3552 void *progctx);
3553
3554
3630WIMLIBAPI int
3632 int image,
3633 const wimlib_tchar *dir,
3634 int mount_flags,
3635 const wimlib_tchar *staging_dir);
3636
3706WIMLIBAPI int
3708 int open_flags,
3709 WIMStruct **wim_ret);
3710
3722WIMLIBAPI int
3724 int open_flags,
3725 WIMStruct **wim_ret,
3726 wimlib_progress_func_t progfunc,
3727 void *progctx);
3728
3788WIMLIBAPI int
3789wimlib_overwrite(WIMStruct *wim, int write_flags, unsigned num_threads);
3790
3811WIMLIBAPI void
3813
3819WIMLIBAPI void
3821
3863WIMLIBAPI int
3865 const wimlib_tchar * const *resource_wimfiles_or_globs,
3866 unsigned count,
3867 int ref_flags,
3868 int open_flags);
3869
3890WIMLIBAPI int
3892 unsigned num_resource_wims, int ref_flags);
3893
3956WIMLIBAPI int
3958 WIMStruct *template_wim, int template_image,
3959 int flags);
3960
3976WIMLIBAPI void
3978 wimlib_progress_func_t progfunc,
3979 void *progctx);
3980
3990WIMLIBAPI int
3992 const wimlib_tchar *source_path, const wimlib_tchar *dest_path);
3993
4024WIMLIBAPI int
4026 const wimlib_tchar *image_name_or_num);
4027
4042WIMLIBAPI int
4044
4059WIMLIBAPI int
4061
4070WIMLIBAPI int
4072 const wimlib_tchar *description);
4073
4081WIMLIBAPI int
4082wimlib_set_image_flags(WIMStruct *wim, int image, const wimlib_tchar *flags);
4083
4090WIMLIBAPI int
4091wimlib_set_image_name(WIMStruct *wim, int image, const wimlib_tchar *name);
4092
4130WIMLIBAPI int
4132 const wimlib_tchar *property_name,
4133 const wimlib_tchar *property_value);
4134
4163WIMLIBAPI int
4164wimlib_set_memory_allocator(void *(*malloc_func)(size_t),
4165 void (*free_func)(void *),
4166 void *(*realloc_func)(void *, size_t));
4167
4193WIMLIBAPI int
4194wimlib_set_output_chunk_size(WIMStruct *wim, uint32_t chunk_size);
4195
4202WIMLIBAPI int
4204
4224WIMLIBAPI int
4226 enum wimlib_compression_type ctype);
4227
4234WIMLIBAPI int
4236 enum wimlib_compression_type ctype);
4237
4257WIMLIBAPI int
4258wimlib_set_print_errors(bool show_messages);
4259
4283WIMLIBAPI int
4285 int which);
4286
4327WIMLIBAPI int
4329 const wimlib_tchar *swm_name,
4330 uint64_t part_size,
4331 int write_flags);
4332
4370WIMLIBAPI int
4371wimlib_verify_wim(WIMStruct *wim, int verify_flags);
4372
4406WIMLIBAPI int
4407wimlib_unmount_image(const wimlib_tchar *dir, int unmount_flags);
4408
4417WIMLIBAPI int
4419 int unmount_flags,
4420 wimlib_progress_func_t progfunc,
4421 void *progctx);
4422
4513WIMLIBAPI int
4515 int image,
4516 const struct wimlib_update_command *cmds,
4517 size_t num_cmds,
4518 int update_flags);
4519
4581WIMLIBAPI int
4583 const wimlib_tchar *path,
4584 int image,
4585 int write_flags,
4586 unsigned num_threads);
4587
4608WIMLIBAPI int
4610 int fd,
4611 int image,
4612 int write_flags,
4613 unsigned num_threads);
4614
4632struct wimlib_compressor;
4633
4635struct wimlib_decompressor;
4636
4666WIMLIBAPI int
4667wimlib_set_default_compression_level(int ctype, unsigned int compression_level);
4668
4677WIMLIBAPI uint64_t
4679 size_t max_block_size,
4680 unsigned int compression_level);
4681
4682#define WIMLIB_COMPRESSOR_FLAG_DESTRUCTIVE 0x80000000
4683
4752WIMLIBAPI int
4754 size_t max_block_size,
4755 unsigned int compression_level,
4756 struct wimlib_compressor **compressor_ret);
4757
4778WIMLIBAPI size_t
4779wimlib_compress(const void *uncompressed_data, size_t uncompressed_size,
4780 void *compressed_data, size_t compressed_size_avail,
4781 struct wimlib_compressor *compressor);
4782
4789WIMLIBAPI void
4790wimlib_free_compressor(struct wimlib_compressor *compressor);
4791
4825WIMLIBAPI int
4827 size_t max_block_size,
4828 struct wimlib_decompressor **decompressor_ret);
4829
4857WIMLIBAPI int
4858wimlib_decompress(const void *compressed_data, size_t compressed_size,
4859 void *uncompressed_data, size_t uncompressed_size,
4860 struct wimlib_decompressor *decompressor);
4861
4868WIMLIBAPI void
4869wimlib_free_decompressor(struct wimlib_decompressor *decompressor);
4870
4871
4877#ifdef __cplusplus
4878}
4879#endif
4880
4881#endif /* _WIMLIB_H */
WIMLIBAPI 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.
WIMLIBAPI 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.
WIMLIBAPI 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.
WIMLIBAPI 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.
WIMLIBAPI int wimlib_set_default_compression_level(int ctype, unsigned int compression_level)
Set the default compression level for the specified compression type.
WIMLIBAPI void wimlib_free_compressor(struct wimlib_compressor *compressor)
Free a compressor previously allocated with wimlib_create_compressor().
WIMLIBAPI void wimlib_free_decompressor(struct wimlib_decompressor *decompressor)
Free a decompressor previously allocated with wimlib_create_decompressor().
WIMLIBAPI 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(...
WIMLIBAPI 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.
WIMLIBAPI 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.
WIMLIBAPI 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.
WIMLIBAPI 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...
WIMLIBAPI 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.
WIMLIBAPI 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.
WIMLIBAPI 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.
WIMLIBAPI int wimlib_extract_image(WIMStruct *wim, int image, const wimlib_tchar *target, int extract_flags)
Extract an image, or all images, from a WIMStruct.
char wimlib_tchar
See Character encoding.
Definition: wimlib.h:468
WIMLIBAPI const wimlib_tchar * wimlib_get_error_string(enum wimlib_error_code code)
Convert a wimlib error code into a string describing it.
WIMLIBAPI int wimlib_global_init(int init_flags)
Initialization function for wimlib.
#define WIMLIB_GUID_LEN
Length of a Globally Unique Identifier (GUID), in bytes.
Definition: wimlib.h:494
WIMLIBAPI 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.
WIMLIBAPI 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...
WIMLIBAPI 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.
WIMLIBAPI 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...
WIMLIBAPI void wimlib_global_cleanup(void)
Cleanup function for wimlib.
struct WIMStruct WIMStruct
Opaque structure that represents a WIM, possibly backed by an on-disk file.
Definition: wimlib.h:460
WIMLIBAPI const wimlib_tchar * wimlib_get_compression_type_string(enum wimlib_compression_type ctype)
Convert a wimlib_compression_type value into a string.
WIMLIBAPI int wimlib_set_error_file(FILE *fp)
Set the file to which the library will print error and warning messages.
#define wimlib_timespec
Definition: wimlib.h:452
WIMLIBAPI int wimlib_verify_wim(WIMStruct *wim, int verify_flags)
Perform verification checks on a WIM file.
WIMLIBAPI void wimlib_register_progress_function(WIMStruct *wim, wimlib_progress_func_t progfunc, void *progctx)
Register a progress function with a WIMStruct.
WIMLIBAPI void wimlib_free(WIMStruct *wim)
Release a reference to a WIMStruct.
wimlib_error_code
Possible values of the error code returned by many functions in wimlib.
Definition: wimlib.h:2529
WIMLIBAPI uint32_t wimlib_get_version(void)
Return the version of wimlib as a 32-bit number whose top 12 bits contain the major version,...
wimlib_compression_type
Specifies a compression type.
Definition: wimlib.h:506
@ WIMLIB_ERR_INVALID_IMAGE
Definition: wimlib.h:2543
@ WIMLIB_ERR_SET_XATTR
Definition: wimlib.h:2610
@ WIMLIB_ERR_UNABLE_TO_READ_CAPTURE_CONFIG
Definition: wimlib.h:2602
@ WIMLIB_ERR_READLINK
Definition: wimlib.h:2573
@ WIMLIB_ERR_PATH_DOES_NOT_EXIST
Definition: wimlib.h:2571
@ WIMLIB_ERR_DECOMPRESSION
Definition: wimlib.h:2532
@ WIMLIB_ERR_XML
Definition: wimlib.h:2592
@ WIMLIB_ERR_SPLIT_INVALID
Definition: wimlib.h:2583
@ WIMLIB_ERR_INVALID_XATTR
Definition: wimlib.h:2609
@ WIMLIB_ERR_INVALID_INTEGRITY_TABLE
Definition: wimlib.h:2544
@ WIMLIB_ERR_SNAPSHOT_FAILURE
Definition: wimlib.h:2608
@ WIMLIB_ERR_READ
Definition: wimlib.h:2572
@ WIMLIB_ERR_IMAGE_HAS_MULTIPLE_REFERENCES
Definition: wimlib.h:2605
@ WIMLIB_ERR_REPARSE_POINT_FIXUP_FAILED
Definition: wimlib.h:2575
@ WIMLIB_ERR_INVALID_PARAM
Definition: wimlib.h:2548
@ WIMLIB_ERR_RESOURCE_NOT_FOUND
Definition: wimlib.h:2576
@ WIMLIB_ERR_MOUNTED_IMAGE_IS_BUSY
Definition: wimlib.h:2598
@ WIMLIB_ERR_INVALID_UTF8_STRING
Definition: wimlib.h:2554
@ WIMLIB_ERR_UNSUPPORTED_FILE
Definition: wimlib.h:2589
@ WIMLIB_ERR_INSUFFICIENT_PRIVILEGES
Definition: wimlib.h:2537
@ WIMLIB_ERR_SET_TIMESTAMPS
Definition: wimlib.h:2582
@ WIMLIB_ERR_OPENDIR
Definition: wimlib.h:2570
@ WIMLIB_ERR_NTFS_3G
Definition: wimlib.h:2568
@ WIMLIB_ERR_IMAGE_NAME_COLLISION
Definition: wimlib.h:2536
@ WIMLIB_ERR_RENAME
Definition: wimlib.h:2574
@ WIMLIB_ERR_NOT_A_WIM_FILE
Definition: wimlib.h:2565
@ WIMLIB_ERR_UNKNOWN_PROGRESS_STATUS
Definition: wimlib.h:2596
@ WIMLIB_ERR_NO_FILENAME
Definition: wimlib.h:2567
@ WIMLIB_ERR_WRITE
Definition: wimlib.h:2591
@ WIMLIB_ERR_INVALID_LOOKUP_TABLE_ENTRY
Definition: wimlib.h:2545
@ WIMLIB_ERR_NOT_A_REGULAR_FILE
Definition: wimlib.h:2564
@ WIMLIB_ERR_STAT
Definition: wimlib.h:2584
@ WIMLIB_ERR_NOT_PIPABLE
Definition: wimlib.h:2566
@ WIMLIB_ERR_IS_DIRECTORY
Definition: wimlib.h:2555
@ WIMLIB_ERR_METADATA_NOT_FOUND
Definition: wimlib.h:2558
@ WIMLIB_ERR_ABORTED_BY_PROGRESS
Definition: wimlib.h:2595
@ WIMLIB_ERR_WIMBOOT
Definition: wimlib.h:2594
@ WIMLIB_ERR_WIM_IS_INCOMPLETE
Definition: wimlib.h:2603
@ WIMLIB_ERR_UNKNOWN_VERSION
Definition: wimlib.h:2587
@ WIMLIB_ERR_INVALID_METADATA_RESOURCE
Definition: wimlib.h:2546
@ WIMLIB_ERR_SET_SECURITY
Definition: wimlib.h:2580
@ WIMLIB_ERR_OPEN
Definition: wimlib.h:2569
@ WIMLIB_ERR_IS_SPLIT_WIM
Definition: wimlib.h:2556
@ WIMLIB_ERR_SET_SHORT_NAME
Definition: wimlib.h:2581
@ WIMLIB_ERR_NOMEM
Definition: wimlib.h:2561
@ WIMLIB_ERR_INVALID_OVERLAY
Definition: wimlib.h:2547
@ WIMLIB_ERR_MKNOD
Definition: wimlib.h:2597
@ WIMLIB_ERR_INVALID_RESOURCE_HASH
Definition: wimlib.h:2552
@ WIMLIB_ERR_SET_REPARSE_DATA
Definition: wimlib.h:2579
@ WIMLIB_ERR_MKDIR
Definition: wimlib.h:2559
@ WIMLIB_ERR_FUSE
Definition: wimlib.h:2533
@ WIMLIB_ERR_INVALID_REPARSE_DATA
Definition: wimlib.h:2551
@ WIMLIB_ERR_DUPLICATE_EXPORTED_IMAGE
Definition: wimlib.h:2606
@ WIMLIB_ERR_SUCCESS
Definition: wimlib.h:2530
@ WIMLIB_ERR_NOTEMPTY
Definition: wimlib.h:2563
@ WIMLIB_ERR_UNSUPPORTED
Definition: wimlib.h:2588
@ WIMLIB_ERR_INVALID_CAPTURE_CONFIG
Definition: wimlib.h:2539
@ WIMLIB_ERR_INVALID_CHUNK_SIZE
Definition: wimlib.h:2540
@ WIMLIB_ERR_LINK
Definition: wimlib.h:2557
@ WIMLIB_ERR_INVALID_PIPABLE_WIM
Definition: wimlib.h:2550
@ WIMLIB_ERR_IMAGE_COUNT
Definition: wimlib.h:2535
@ WIMLIB_ERR_INVALID_HEADER
Definition: wimlib.h:2542
@ WIMLIB_ERR_UNEXPECTED_END_OF_FILE
Definition: wimlib.h:2585
@ WIMLIB_ERR_GLOB_HAD_NO_MATCHES
Definition: wimlib.h:2534
@ WIMLIB_ERR_NOTDIR
Definition: wimlib.h:2562
@ WIMLIB_ERR_UNICODE_STRING_NOT_REPRESENTABLE
Definition: wimlib.h:2586
@ WIMLIB_ERR_FVE_LOCKED_VOLUME
Definition: wimlib.h:2601
@ WIMLIB_ERR_COMPACTION_NOT_POSSIBLE
Definition: wimlib.h:2604
@ WIMLIB_ERR_SET_ATTRIBUTES
Definition: wimlib.h:2578
@ WIMLIB_ERR_INVALID_UTF16_STRING
Definition: wimlib.h:2553
@ WIMLIB_ERR_NOT_PERMITTED_TO_UNMOUNT
Definition: wimlib.h:2600
@ WIMLIB_ERR_INTEGRITY
Definition: wimlib.h:2538
@ WIMLIB_ERR_WIM_IS_ENCRYPTED
Definition: wimlib.h:2593
@ WIMLIB_ERR_RESOURCE_ORDER
Definition: wimlib.h:2577
@ WIMLIB_ERR_INVALID_COMPRESSION_TYPE
Definition: wimlib.h:2541
@ WIMLIB_ERR_ALREADY_LOCKED
Definition: wimlib.h:2531
@ WIMLIB_ERR_MQUEUE
Definition: wimlib.h:2560
@ WIMLIB_ERR_INVALID_PART_NUMBER
Definition: wimlib.h:2549
@ WIMLIB_ERR_WIM_IS_READONLY
Definition: wimlib.h:2590
@ WIMLIB_ERR_NOT_A_MOUNTPOINT
Definition: wimlib.h:2599
@ WIMLIB_ERR_CONCURRENT_MODIFICATION_DETECTED
Definition: wimlib.h:2607
@ WIMLIB_COMPRESSION_TYPE_NONE
No compression.
Definition: wimlib.h:514
@ WIMLIB_COMPRESSION_TYPE_LZMS
The LZMS compression format.
Definition: wimlib.h:579
@ WIMLIB_COMPRESSION_TYPE_LZX
The LZX compression format.
Definition: wimlib.h:556
@ WIMLIB_COMPRESSION_TYPE_XPRESS
The XPRESS compression format.
Definition: wimlib.h:534
WIMLIBAPI 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.
WIMLIBAPI 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.
WIMLIBAPI 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...
WIMLIBAPI int wimlib_set_image_name(WIMStruct *wim, int image, const wimlib_tchar *name)
Change the name of a WIM image.
WIMLIBAPI 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...
WIMLIBAPI 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...
WIMLIBAPI int wimlib_set_wim_info(WIMStruct *wim, const struct wimlib_wim_info *info, int which)
Set basic information about a WIM.
WIMLIBAPI 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...
WIMLIBAPI int wimlib_add_empty_image(WIMStruct *wim, const wimlib_tchar *name, int *new_idx_ret)
Append an empty image to a WIMStruct.
WIMLIBAPI 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.
WIMLIBAPI 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.
WIMLIBAPI int wimlib_set_image_descripton(WIMStruct *wim, int image, const wimlib_tchar *description)
Change the description of a WIM image.
WIMLIBAPI 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.
WIMLIBAPI int wimlib_delete_image(WIMStruct *wim, int image)
Delete an image, or all images, from a WIMStruct.
wimlib_update_op
The specific type of update to perform.
Definition: wimlib.h:2455
WIMLIBAPI 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.
@ WIMLIB_UPDATE_OP_RENAME
Rename a file or directory tree in the image.
Definition: wimlib.h:2463
@ WIMLIB_UPDATE_OP_DELETE
Delete a file or directory tree from the image.
Definition: wimlib.h:2460
@ WIMLIB_UPDATE_OP_ADD
Add a new file or directory tree to the image.
Definition: wimlib.h:2457
WIMLIBAPI int wimlib_unmount_image(const wimlib_tchar *dir, int unmount_flags)
Unmount a WIM image that was mounted using wimlib_mount_image().
WIMLIBAPI 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.
WIMLIBAPI 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.
WIMLIBAPI 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.
WIMLIBAPI 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.
WIMLIBAPI 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.
WIMLIBAPI int wimlib_split(WIMStruct *wim, const wimlib_tchar *swm_name, uint64_t part_size, int write_flags)
Split a WIM into multiple parts.
WIMLIBAPI 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...
wimlib_progress_status
Valid return values from user-provided progress functions (wimlib_progress_func_t).
Definition: wimlib.h:796
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:1262
wimlib_progress_msg
Possible values of the first parameter to the user-supplied wimlib_progress_func_t progress function.
Definition: wimlib.h:588
@ WIMLIB_PROGRESS_STATUS_CONTINUE
The operation should be continued.
Definition: wimlib.h:800
@ WIMLIB_PROGRESS_STATUS_ABORT
The operation should be aborted.
Definition: wimlib.h:804
@ 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:697
@ WIMLIB_PROGRESS_MSG_UNMOUNT_BEGIN
Starting to unmount an image.
Definition: wimlib.h:732
@ WIMLIB_PROGRESS_MSG_VERIFY_STREAMS
wimlib_verify_wim() is verifying file data integrity.
Definition: wimlib.h:751
@ WIMLIB_PROGRESS_MSG_EXTRACT_SPWM_PART_BEGIN
Starting to read a new part of a split pipable WIM over the pipe.
Definition: wimlib.h:618
@ WIMLIB_PROGRESS_MSG_EXTRACT_IMAGE_END
The image has been successfully extracted.
Definition: wimlib.h:631
@ 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:720
@ WIMLIB_PROGRESS_MSG_VERIFY_INTEGRITY
The contents of the WIM file are being checked against the integrity table.
Definition: wimlib.h:686
@ WIMLIB_PROGRESS_MSG_EXTRACT_STREAMS
File data is currently being extracted.
Definition: wimlib.h:614
@ WIMLIB_PROGRESS_MSG_END_VERIFY_IMAGE
wimlib_verify_wim() has finished verifying the metadata for an image.
Definition: wimlib.h:747
@ 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:601
@ WIMLIB_PROGRESS_MSG_WRITE_METADATA_END
The per-image metadata has been written to the WIM file.
Definition: wimlib.h:672
@ 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:787
@ WIMLIB_PROGRESS_MSG_SPLIT_END_PART
A wimlib_split() operation is in progress, and a split part has been finished.
Definition: wimlib.h:701
@ WIMLIB_PROGRESS_MSG_WRITE_STREAMS
File data is currently being written to the WIM.
Definition: wimlib.h:663
@ WIMLIB_PROGRESS_MSG_RENAME
wimlib_overwrite() has successfully renamed the temporary file to the original WIM file,...
Definition: wimlib.h:679
@ 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:765
@ 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:728
@ WIMLIB_PROGRESS_MSG_BEGIN_VERIFY_IMAGE
wimlib_verify_wim() is starting to verify the metadata for an image.
Definition: wimlib.h:742
@ WIMLIB_PROGRESS_MSG_UPDATE_BEGIN_COMMAND
A WIM update command is about to be executed.
Definition: wimlib.h:707
@ WIMLIB_PROGRESS_MSG_EXTRACT_TREE_END
The files or directory trees have been successfully extracted.
Definition: wimlib.h:636
@ WIMLIB_PROGRESS_MSG_CALC_INTEGRITY
An integrity table is being calculated for the WIM being written.
Definition: wimlib.h:692
@ WIMLIB_PROGRESS_MSG_SCAN_DENTRY
A directory or file has been scanned.
Definition: wimlib.h:649
@ WIMLIB_PROGRESS_MSG_EXTRACT_METADATA
This message may be sent periodically (not necessarily for every file) while file and directory metad...
Definition: wimlib.h:626
@ 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:738
@ WIMLIB_PROGRESS_MSG_UPDATE_END_COMMAND
A WIM update command has been executed.
Definition: wimlib.h:713
@ 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:609
@ WIMLIB_PROGRESS_MSG_WRITE_METADATA_BEGIN
Per-image metadata is about to be written to the WIM file.
Definition: wimlib.h:667
@ WIMLIB_PROGRESS_MSG_EXTRACT_IMAGE_BEGIN
A WIM image is about to be extracted.
Definition: wimlib.h:594
@ WIMLIB_PROGRESS_MSG_SCAN_BEGIN
The directory or NTFS volume is about to be scanned for metadata.
Definition: wimlib.h:643
@ WIMLIB_PROGRESS_MSG_SCAN_END
The directory or NTFS volume has been successfully scanned.
Definition: wimlib.h:655
WIMLIBAPI 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.
WIMLIBAPI void wimlib_print_available_images(const WIMStruct *wim, int image)
(Deprecated) Print information about one image, or all images, contained in a WIM.
WIMLIBAPI void wimlib_print_header(const WIMStruct *wim)
Print the header of the WIM file (intended for debugging only).
WIMLIBAPI 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.
WIMLIBAPI 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.
WIMLIBAPI const wimlib_tchar * wimlib_get_image_description(const WIMStruct *wim, int image)
Get the description of the specified image.
WIMLIBAPI 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.
WIMLIBAPI int wimlib_get_wim_info(WIMStruct *wim, struct wimlib_wim_info *info)
Get basic information about a WIM file.
WIMLIBAPI 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.
WIMLIBAPI 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...
WIMLIBAPI const wimlib_tchar * wimlib_get_image_name(const WIMStruct *wim, int image)
Get the name of the specified image.
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:1695
WIMLIBAPI 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.
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:1688
WIMLIBAPI 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...
WIMLIBAPI int wimlib_overwrite(WIMStruct *wim, int write_flags, unsigned num_threads)
Commit a WIMStruct to disk, updating its backing file.
WIMLIBAPI 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...
WIMLIBAPI int wimlib_set_output_chunk_size(WIMStruct *wim, uint32_t chunk_size)
Set a WIMStruct's output compression chunk size.
WIMLIBAPI 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.
WIMLIBAPI int wimlib_set_output_compression_type(WIMStruct *wim, enum wimlib_compression_type ctype)
Set a WIMStruct's output compression type.
WIMLIBAPI 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.
Data for a WIMLIB_UPDATE_OP_ADD operation.
Definition: wimlib.h:2467
int add_flags
Bitwise OR of WIMLIB_ADD_FLAG_* flags.
Definition: wimlib.h:2480
wimlib_tchar * fs_source_path
Filesystem path to the file or directory tree to add.
Definition: wimlib.h:2469
wimlib_tchar * config_file
Path to capture configuration file to use, or NULL if not specified.
Definition: wimlib.h:2477
wimlib_tchar * wim_target_path
Destination path in the image.
Definition: wimlib.h:2473
An array of these structures is passed to wimlib_add_image_multisource() to specify the sources from ...
Definition: wimlib.h:1272
wimlib_tchar * wim_target_path
Destination path in the image.
Definition: wimlib.h:1279
long reserved
Reserved; set to 0.
Definition: wimlib.h:1282
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:1275
Data for a WIMLIB_UPDATE_OP_DELETE operation.
Definition: wimlib.h:2484
wimlib_tchar * wim_path
The path to the file or directory within the image to delete.
Definition: wimlib.h:2487
int delete_flags
Bitwise OR of WIMLIB_DELETE_FLAG_* flags.
Definition: wimlib.h:2490
Structure passed to the wimlib_iterate_dir_tree() callback function.
Definition: wimlib.h:1533
size_t depth
Depth of this directory entry, where 0 is the root, 1 is the root's children, ...,...
Definition: wimlib.h:1548
struct wimlib_timespec last_access_time
Time this file was last accessed.
Definition: wimlib.h:1622
struct wimlib_object_id object_id
Definition: wimlib.h:1649
uint32_t unix_uid
The UNIX user ID of this file.
Definition: wimlib.h:1627
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:1657
uint32_t reparse_tag
If the file is a reparse point (FILE_ATTRIBUTE_REPARSE_POINT set in the attributes),...
Definition: wimlib.h:1595
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:1661
const char * security_descriptor
Pointer to the security descriptor for this file, in Windows SECURITY_DESCRIPTOR_RELATIVE format,...
Definition: wimlib.h:1553
uint32_t unix_rdev
The UNIX device ID (major and minor number) of this file.
Definition: wimlib.h:1645
uint64_t hard_link_group_id
A unique identifier for this file's inode.
Definition: wimlib.h:1613
uint64_t reserved[4]
Definition: wimlib.h:1665
uint32_t num_links
Number of links to this file's inode (hard links).
Definition: wimlib.h:1601
int32_t creation_time_high
High 32 bits of the seconds portion of the creation timestamp, filled in if wimlib_timespec....
Definition: wimlib.h:1653
struct wimlib_timespec last_write_time
Time this file was last written to.
Definition: wimlib.h:1619
const wimlib_tchar * filename
Name of the file, or NULL if this file is unnamed.
Definition: wimlib.h:1536
uint32_t attributes
File attributes, such as whether the file is a directory or not.
Definition: wimlib.h:1577
uint32_t num_named_streams
Number of named data streams this file has.
Definition: wimlib.h:1604
size_t security_descriptor_size
Size of the above security descriptor, in bytes.
Definition: wimlib.h:1556
struct wimlib_stream_entry streams[]
Variable-length array of streams that make up this file.
Definition: wimlib.h:1681
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:1540
const wimlib_tchar * full_path
Full path to this file within the image.
Definition: wimlib.h:1544
uint32_t unix_gid
The UNIX group ID of this file.
Definition: wimlib.h:1632
uint32_t unix_mode
The UNIX mode of this file.
Definition: wimlib.h:1639
struct wimlib_timespec creation_time
Time this file was created.
Definition: wimlib.h:1616
int32_t reserved2
Definition: wimlib.h:1663
Since wimlib v1.9.1: an object ID, which is an extra piece of metadata that may be associated with a ...
Definition: wimlib.h:1522
uint8_t birth_volume_id[WIMLIB_GUID_LEN]
Definition: wimlib.h:1524
uint8_t object_id[WIMLIB_GUID_LEN]
Definition: wimlib.h:1523
uint8_t birth_object_id[WIMLIB_GUID_LEN]
Definition: wimlib.h:1525
uint8_t domain_id[WIMLIB_GUID_LEN]
Definition: wimlib.h:1526
Valid on messages WIMLIB_PROGRESS_MSG_DONE_WITH_FILE.
Definition: wimlib.h:1159
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:1178
Valid on messages WIMLIB_PROGRESS_MSG_EXTRACT_SPWM_PART_BEGIN, WIMLIB_PROGRESS_MSG_EXTRACT_IMAGE_BEGI...
Definition: wimlib.h:959
uint32_t extract_flags
Extraction flags being used.
Definition: wimlib.h:966
uint64_t completed_bytes
The number of bytes of file data that have been extracted so far.
Definition: wimlib.h:989
uint64_t end_file_count
For WIMLIB_PROGRESS_MSG_EXTRACT_FILE_STRUCTURE and WIMLIB_PROGRESS_MSG_EXTRACT_METADATA messages,...
Definition: wimlib.h:1036
uint64_t current_file_count
For WIMLIB_PROGRESS_MSG_EXTRACT_FILE_STRUCTURE and WIMLIB_PROGRESS_MSG_EXTRACT_METADATA messages,...
Definition: wimlib.h:1018
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:975
uint32_t total_parts
Currently only used for WIMLIB_PROGRESS_MSG_EXTRACT_SPWM_PART_BEGIN.
Definition: wimlib.h:1007
uint64_t total_bytes
The number of bytes of file data that will be extracted.
Definition: wimlib.h:985
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:971
uint64_t completed_streams
The number of file streams that have been extracted so far.
Definition: wimlib.h:999
uint32_t part_number
Currently only used for WIMLIB_PROGRESS_MSG_EXTRACT_SPWM_PART_BEGIN.
Definition: wimlib.h:1003
const wimlib_tchar * target
Path to the directory or NTFS volume to which the files are being extracted.
Definition: wimlib.h:979
uint8_t guid[WIMLIB_GUID_LEN]
Currently only used for WIMLIB_PROGRESS_MSG_EXTRACT_SPWM_PART_BEGIN.
Definition: wimlib.h:1011
const wimlib_tchar * reserved
Reserved.
Definition: wimlib.h:982
uint32_t image
The 1-based index of the image from which files are being extracted.
Definition: wimlib.h:963
uint64_t total_streams
The number of file streams that will be extracted.
Definition: wimlib.h:995
Valid on messages WIMLIB_PROGRESS_MSG_HANDLE_ERROR.
Definition: wimlib.h:1225
bool will_ignore
Indicates whether the error will be ignored or not.
Definition: wimlib.h:1239
const wimlib_tchar * path
Path to the file for which the error occurred, or NULL if not relevant.
Definition: wimlib.h:1229
int error_code
The wimlib error code associated with the error.
Definition: wimlib.h:1232
Valid on messages WIMLIB_PROGRESS_MSG_VERIFY_INTEGRITY and WIMLIB_PROGRESS_MSG_CALC_INTEGRITY.
Definition: wimlib.h:1067
uint64_t completed_bytes
The number of bytes that have been checksummed so far.
Definition: wimlib.h:1075
uint32_t total_chunks
The number of individually checksummed "chunks" the integrity-checked region is divided into.
Definition: wimlib.h:1079
uint64_t total_bytes
The number of bytes in the WIM file that are covered by integrity checks.
Definition: wimlib.h:1071
uint32_t completed_chunks
The number of chunks that have been checksummed so far.
Definition: wimlib.h:1083
uint32_t chunk_size
The size of each individually checksummed "chunk" in the integrity-checked region.
Definition: wimlib.h:1087
const wimlib_tchar * filename
For WIMLIB_PROGRESS_MSG_VERIFY_INTEGRITY messages, this is the path to the WIM file being checked.
Definition: wimlib.h:1091
Valid on messages WIMLIB_PROGRESS_MSG_RENAME.
Definition: wimlib.h:1040
const wimlib_tchar * from
Name of the temporary file that the WIM was written to.
Definition: wimlib.h:1042
const wimlib_tchar * to
Name of the original WIM file to which the temporary file is being renamed.
Definition: wimlib.h:1046
Valid on messages WIMLIB_PROGRESS_MSG_REPLACE_FILE_IN_WIM
Definition: wimlib.h:1125
const wimlib_tchar * path_in_wim
Path to the file in the image that is being replaced
Definition: wimlib.h:1127
Valid on messages WIMLIB_PROGRESS_MSG_SCAN_BEGIN, WIMLIB_PROGRESS_MSG_SCAN_DENTRY,...
Definition: wimlib.h:871
const wimlib_tchar * wim_target_path
Target path in the image.
Definition: wimlib.h:918
uint64_t num_bytes_scanned
The number of bytes of file data detected so far, not counting excluded/unsupported files.
Definition: wimlib.h:937
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:883
uint64_t num_nondirs_scanned
The number of non-directories scanned so far, not counting excluded/unsupported files.
Definition: wimlib.h:933
uint64_t num_dirs_scanned
The number of directories scanned so far, not counting excluded/unsupported files.
Definition: wimlib.h:929
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:924
@ WIMLIB_SCAN_DENTRY_UNSUPPORTED
File is being excluded from capture due to being of an unsupported type.
Definition: wimlib.h:897
@ WIMLIB_SCAN_DENTRY_OK
File looks okay and will be captured.
Definition: wimlib.h:889
@ WIMLIB_SCAN_DENTRY_EXCLUDED
File is being excluded from capture due to the capture configuration.
Definition: wimlib.h:893
@ 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:911
@ WIMLIB_SCAN_DENTRY_FIXED_SYMLINK
The file is an absolute symbolic link or junction that points into the capture directory,...
Definition: wimlib.h:905
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:877
Valid on messages WIMLIB_PROGRESS_MSG_SPLIT_BEGIN_PART and WIMLIB_PROGRESS_MSG_SPLIT_END_PART.
Definition: wimlib.h:1096
uint64_t total_bytes
Total size of the original WIM's file and metadata resources (compressed).
Definition: wimlib.h:1099
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:1109
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:1104
unsigned total_parts
Total number of split WIM parts that are being written.
Definition: wimlib.h:1112
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:1121
Valid on messages WIMLIB_PROGRESS_MSG_TEST_FILE_EXCLUSION.
Definition: wimlib.h:1199
bool will_exclude
Indicates whether the file or directory will be excluded from capture or not.
Definition: wimlib.h:1221
const wimlib_tchar * path
Path to the file for which exclusion is being tested.
Definition: wimlib.h:1213
Valid on messages WIMLIB_PROGRESS_MSG_UNMOUNT_BEGIN.
Definition: wimlib.h:1140
uint32_t unmount_flags
Flags passed to wimlib_unmount_image().
Definition: wimlib.h:1155
const wimlib_tchar * mountpoint
Path to directory being unmounted
Definition: wimlib.h:1142
uint32_t mount_flags
Flags that were passed to wimlib_mount_image() when the mountpoint was set up.
Definition: wimlib.h:1152
const wimlib_tchar * mounted_wim
Path to WIM file being unmounted
Definition: wimlib.h:1145
uint32_t mounted_image
1-based index of image being unmounted.
Definition: wimlib.h:1148
Valid on messages WIMLIB_PROGRESS_MSG_UPDATE_BEGIN_COMMAND and WIMLIB_PROGRESS_MSG_UPDATE_END_COMMAND...
Definition: wimlib.h:1051
const struct wimlib_update_command * command
Pointer to the update command that will be executed or has just been executed.
Definition: wimlib.h:1054
size_t total_commands
Number of update commands that are being executed as part of this call to wimlib_update_image().
Definition: wimlib.h:1062
size_t completed_commands
Number of update commands that have been completed so far.
Definition: wimlib.h:1058
Valid on messages WIMLIB_PROGRESS_MSG_BEGIN_VERIFY_IMAGE and WIMLIB_PROGRESS_MSG_END_VERIFY_IMAGE.
Definition: wimlib.h:1183
const wimlib_tchar * wimfile
Definition: wimlib.h:1184
uint32_t current_image
Definition: wimlib.h:1186
uint32_t total_images
Definition: wimlib.h:1185
Valid on messages WIMLIB_PROGRESS_MSG_VERIFY_STREAMS.
Definition: wimlib.h:1190
uint64_t completed_streams
Definition: wimlib.h:1194
const wimlib_tchar * wimfile
Definition: wimlib.h:1191
Valid on messages WIMLIB_PROGRESS_MSG_WIMBOOT_EXCLUDE
Definition: wimlib.h:1131
const wimlib_tchar * path_in_wim
Path to the file in the image
Definition: wimlib.h:1133
const wimlib_tchar * extraction_path
Path to which the file is being extracted
Definition: wimlib.h:1136
Valid on the message WIMLIB_PROGRESS_MSG_WRITE_STREAMS.
Definition: wimlib.h:818
uint64_t completed_bytes
The number of bytes of file data that have been written so far.
Definition: wimlib.h:840
uint64_t total_bytes
An upper bound on the number of bytes of file data that will be written.
Definition: wimlib.h:825
int32_t compression_type
The compression type being used, as one of the wimlib_compression_type constants.
Definition: wimlib.h:853
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:858
uint64_t completed_compressed_bytes
Since wimlib v1.13.4: Like completed_bytes, but counts the compressed size.
Definition: wimlib.h:865
uint64_t total_streams
An upper bound on the number of distinct file data "blobs" that will be written.
Definition: wimlib.h:833
uint32_t num_threads
The number of threads being used for data compression; or, if no compression is being performed,...
Definition: wimlib.h:849
uint32_t completed_parts
This is currently broken and will always be 0.
Definition: wimlib.h:861
uint64_t completed_streams
The number of distinct file data "blobs" that have been written so far.
Definition: wimlib.h:845
Data for a WIMLIB_UPDATE_OP_RENAME operation.
Definition: wimlib.h:2494
wimlib_tchar * wim_target_path
The path to the destination file or directory within the image.
Definition: wimlib.h:2500
wimlib_tchar * wim_source_path
The path to the source file or directory within the image.
Definition: wimlib.h:2497
int rename_flags
Reserved; set to 0.
Definition: wimlib.h:2503
Information about a "blob", which is a fixed length sequence of binary data.
Definition: wimlib.h:1431
uint32_t reserved_flags
Definition: wimlib.h:1478
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:1458
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:1490
uint8_t sha1_hash[20]
If this blob is located in a WIM resource, then this is the SHA-1 message digest of the blob's uncomp...
Definition: wimlib.h:1449
uint32_t is_free
Definition: wimlib.h:1467
uint64_t uncompressed_size
If this blob is not missing, then this is the uncompressed size of this blob in bytes.
Definition: wimlib.h:1435
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:1482
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:1439
uint32_t is_compressed
1 iff this blob is located in a non-solid compressed WIM resource.
Definition: wimlib.h:1462
uint64_t reserved[1]
Definition: wimlib.h:1492
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:1473
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:1445
uint32_t is_spanned
Definition: wimlib.h:1468
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:1453
uint32_t is_metadata
1 iff this blob contains the metadata for an image.
Definition: wimlib.h:1465
uint32_t packed
1 iff this blob is located in a solid resource.
Definition: wimlib.h:1476
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:1486
Information about a stream of a particular file in the WIM.
Definition: wimlib.h:1506
struct wimlib_resource_entry resource
Info about this stream's data, such as its hash and size if known.
Definition: wimlib.h:1512
uint64_t reserved[4]
Definition: wimlib.h:1514
const wimlib_tchar * stream_name
Name of the stream, or NULL if the stream is unnamed.
Definition: wimlib.h:1509
Specification of an update to perform on a WIM image.
Definition: wimlib.h:2507
struct wimlib_delete_command delete_
Definition: wimlib.h:2513
struct wimlib_add_command add
Definition: wimlib.h:2512
struct wimlib_rename_command rename
Definition: wimlib.h:2515
enum wimlib_update_op op
Definition: wimlib.h:2509
General information about a WIM file.
Definition: wimlib.h:1326
uint32_t is_marked_readonly
1 iff the "readonly" flag is set in this WIM's header
Definition: wimlib.h:1378
uint32_t has_integrity_table
1 iff this WIM file has an integrity table.
Definition: wimlib.h:1363
uint32_t reserved[9]
Definition: wimlib.h:1395
uint32_t wim_version
The version of the WIM file format used in this WIM file.
Definition: wimlib.h:1340
uint32_t is_readonly
1 iff this WIM file is considered readonly for any reason (e.g.
Definition: wimlib.h:1372
uint32_t spanned
1 iff the "spanned" flag is set in this WIM's header
Definition: wimlib.h:1381
uint32_t resource_only
1 iff the "resource only" flag is set in this WIM's header
Definition: wimlib.h:1390
uint32_t chunk_size
The default compression chunk size of resources in this WIM file.
Definition: wimlib.h:1344
uint32_t has_rpfix
1 iff the "reparse point fix" flag is set in this WIM's header
Definition: wimlib.h:1375
uint32_t image_count
The number of images in this WIM file.
Definition: wimlib.h:1333
uint32_t opened_from_file
1 iff this info struct is for a WIMStruct that has a backing file.
Definition: wimlib.h:1367
uint16_t total_parts
For split WIMs, the total number of parts in the split WIM; otherwise 1.
Definition: wimlib.h:1352
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:1337
uint16_t part_number
For split WIMs, the 1-based index of this part within the split WIM; otherwise 1.
Definition: wimlib.h:1348
uint32_t metadata_only
1 iff the "metadata only" flag is set in this WIM's header
Definition: wimlib.h:1387
uint32_t pipable
1 iff this WIM file is pipable (see WIMLIB_WRITE_FLAG_PIPABLE).
Definition: wimlib.h:1393
uint32_t reserved_flags
Definition: wimlib.h:1394
uint8_t guid[WIMLIB_GUID_LEN]
The globally unique identifier for this WIM.
Definition: wimlib.h:1330
uint32_t write_in_progress
1 iff the "write in progress" flag is set in this WIM's header
Definition: wimlib.h:1384
uint64_t total_bytes
The size of this WIM file in bytes, excluding the XML data and integrity table.
Definition: wimlib.h:1360
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:1356
A pointer to this union is passed to the user-supplied wimlib_progress_func_t progress function.
Definition: wimlib.h:813
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
#define WIMLIBAPI
Definition: wimlib.h:410