wimlib
Loading...
Searching...
No Matches
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 /*
405 * On i386, gcc assumes that the stack is 16-byte aligned at function entry.
406 * However, some compilers (e.g. MSVC) and programming languages (e.g. Delphi)
407 * only guarantee 4-byte alignment when calling functions. This is mainly an
408 * issue on Windows, but it can occur on Linux too. Work around this ABI
409 * incompatibility by realigning the stack pointer when entering the library.
410 * This prevents crashes in SSE/AVX code.
411 */
412# if defined(__GNUC__) && defined(__i386__)
413# define WIMLIB_ALIGN_STACK __attribute__((force_align_arg_pointer))
414# else
415# define WIMLIB_ALIGN_STACK
416# endif
417# ifdef _WIN32
418# define WIMLIBAPI __declspec(dllexport) WIMLIB_ALIGN_STACK
419# else
420# define WIMLIBAPI __attribute__((visibility("default"))) WIMLIB_ALIGN_STACK
421# endif
422#else
423# define WIMLIBAPI
424#endif
425
430#define WIMLIB_MAJOR_VERSION 1
431
433#define WIMLIB_MINOR_VERSION 14
434
436#define WIMLIB_PATCH_VERSION 4
437
438#ifdef __cplusplus
439extern "C" {
440#endif
441
442/*
443 * To represent file timestamps, wimlib's API originally used the POSIX 'struct
444 * timespec'. This was a mistake because when building wimlib for 32-bit
445 * Windows with MinGW we ended up originally using 32-bit time_t which isn't
446 * year 2038-safe, and therefore we had to later add fields like
447 * 'creation_time_high' to hold the high 32 bits of each timestamp. Moreover,
448 * old Visual Studio versions did not define struct timespec, while newer ones
449 * define it but with 64-bit tv_sec. So to at least avoid a missing or
450 * incompatible 'struct timespec' definition, define the correct struct
451 * ourselves when this header is included on Windows.
452 */
453#ifdef _WIN32
454struct wimlib_timespec {
455 /* Seconds since start of UNIX epoch (January 1, 1970) */
456#ifdef _WIN64
457 int64_t tv_sec;
458#else
459 int32_t tv_sec;
460#endif
461 /* Nanoseconds (0-999999999) */
462 int32_t tv_nsec;
463};
464#else
465# define wimlib_timespec timespec /* standard definition */
466#endif
467
472#ifndef WIMLIB_WIMSTRUCT_DECLARED
473typedef struct WIMStruct WIMStruct;
474#define WIMLIB_WIMSTRUCT_DECLARED
475#endif
476
477#ifdef _WIN32
478typedef wchar_t wimlib_tchar;
479#else
481typedef char wimlib_tchar;
482#endif
483
484#ifdef _WIN32
487# define WIMLIB_WIM_PATH_SEPARATOR '\\'
488# define WIMLIB_WIM_PATH_SEPARATOR_STRING L"\\"
489#else
492# define WIMLIB_WIM_PATH_SEPARATOR '/'
493# define WIMLIB_WIM_PATH_SEPARATOR_STRING "/"
494#endif
495
498#define WIMLIB_WIM_ROOT_PATH WIMLIB_WIM_PATH_SEPARATOR_STRING
499
502#define WIMLIB_IS_WIM_ROOT_PATH(path) \
503 ((path)[0] == WIMLIB_WIM_PATH_SEPARATOR && \
504 (path)[1] == 0)
505
507#define WIMLIB_GUID_LEN 16
508
594
602
608
615
623
628
632
640
645
650
657
663
669
677
681
686
693
700
706
711
715
721
727
734
742
746
752
756
761
765
779
801};
802
819
827
880
952
973
976 uint32_t image;
977
980
985
989
993
996
998 uint64_t total_bytes;
999
1003
1009
1013
1016 uint32_t part_number;
1017
1020 uint32_t total_parts;
1021
1025
1032
1051
1061
1077
1081
1084 uint64_t total_bytes;
1085
1089
1093
1097
1100 uint32_t chunk_size;
1101
1106
1136
1142
1151
1170
1193
1201
1210
1236
1254};
1255
1274typedef enum wimlib_progress_status
1276 union wimlib_progress_info *info,
1277 void *progctx);
1278
1297
1308#define WIMLIB_CHANGE_READONLY_FLAG 0x00000001
1309
1312#define WIMLIB_CHANGE_GUID 0x00000002
1313
1316#define WIMLIB_CHANGE_BOOT_INDEX 0x00000004
1317
1324#define WIMLIB_CHANGE_RPFIX_FLAG 0x00000008
1325
1340
1344
1346 uint32_t image_count;
1347
1350 uint32_t boot_index;
1351
1353 uint32_t wim_version;
1354
1357 uint32_t chunk_size;
1358
1361 uint16_t part_number;
1362
1365 uint16_t total_parts;
1366
1370
1373 uint64_t total_bytes;
1374
1377
1380 uint32_t opened_from_file : 1;
1381
1385 uint32_t is_readonly : 1;
1386
1388 uint32_t has_rpfix : 1;
1389
1392
1394 uint32_t spanned : 1;
1395
1397 uint32_t write_in_progress : 1;
1398
1400 uint32_t metadata_only : 1;
1401
1403 uint32_t resource_only : 1;
1404
1406 uint32_t pipable : 1;
1407 uint32_t reserved_flags : 22;
1408 uint32_t reserved[9];
1409};
1410
1445
1449
1453
1458 uint64_t offset;
1459
1462 uint8_t sha1_hash[20];
1463
1466 uint32_t part_number;
1467
1472
1475 uint32_t is_compressed : 1;
1476
1478 uint32_t is_metadata : 1;
1479
1480 uint32_t is_free : 1;
1481 uint32_t is_spanned : 1;
1482
1486 uint32_t is_missing : 1;
1487
1489 uint32_t packed : 1;
1490
1491 uint32_t reserved_flags : 26;
1492
1496
1500
1504
1505 uint64_t reserved[1];
1506};
1507
1520
1523
1526
1527 uint64_t reserved[4];
1528};
1529
1541
1550
1554
1558
1561 size_t depth;
1562
1567
1570
1571#define WIMLIB_FILE_ATTRIBUTE_READONLY 0x00000001
1572#define WIMLIB_FILE_ATTRIBUTE_HIDDEN 0x00000002
1573#define WIMLIB_FILE_ATTRIBUTE_SYSTEM 0x00000004
1574#define WIMLIB_FILE_ATTRIBUTE_DIRECTORY 0x00000010
1575#define WIMLIB_FILE_ATTRIBUTE_ARCHIVE 0x00000020
1576#define WIMLIB_FILE_ATTRIBUTE_DEVICE 0x00000040
1577#define WIMLIB_FILE_ATTRIBUTE_NORMAL 0x00000080
1578#define WIMLIB_FILE_ATTRIBUTE_TEMPORARY 0x00000100
1579#define WIMLIB_FILE_ATTRIBUTE_SPARSE_FILE 0x00000200
1580#define WIMLIB_FILE_ATTRIBUTE_REPARSE_POINT 0x00000400
1581#define WIMLIB_FILE_ATTRIBUTE_COMPRESSED 0x00000800
1582#define WIMLIB_FILE_ATTRIBUTE_OFFLINE 0x00001000
1583#define WIMLIB_FILE_ATTRIBUTE_NOT_CONTENT_INDEXED 0x00002000
1584#define WIMLIB_FILE_ATTRIBUTE_ENCRYPTED 0x00004000
1585#define WIMLIB_FILE_ATTRIBUTE_VIRTUAL 0x00010000
1590 uint32_t attributes;
1591
1592#define WIMLIB_REPARSE_TAG_RESERVED_ZERO 0x00000000
1593#define WIMLIB_REPARSE_TAG_RESERVED_ONE 0x00000001
1594#define WIMLIB_REPARSE_TAG_MOUNT_POINT 0xA0000003
1595#define WIMLIB_REPARSE_TAG_HSM 0xC0000004
1596#define WIMLIB_REPARSE_TAG_HSM2 0x80000006
1597#define WIMLIB_REPARSE_TAG_DRIVER_EXTENDER 0x80000005
1598#define WIMLIB_REPARSE_TAG_SIS 0x80000007
1599#define WIMLIB_REPARSE_TAG_DFS 0x8000000A
1600#define WIMLIB_REPARSE_TAG_DFSR 0x80000012
1601#define WIMLIB_REPARSE_TAG_FILTER_MANAGER 0x8000000B
1602#define WIMLIB_REPARSE_TAG_WOF 0x80000017
1603#define WIMLIB_REPARSE_TAG_SYMLINK 0xA000000C
1608 uint32_t reparse_tag;
1609
1614 uint32_t num_links;
1615
1618
1627
1630
1633
1636
1640 uint32_t unix_uid;
1641
1645 uint32_t unix_gid;
1646
1652 uint32_t unix_mode;
1653
1658 uint32_t unix_rdev;
1659
1660 /* The object ID of this file, if any. Only valid if
1661 * object_id.object_id is not all zeroes. */
1663
1667
1671
1675
1676 int32_t reserved2;
1677
1678 uint64_t reserved[4];
1679
1695};
1696
1701typedef int (*wimlib_iterate_dir_tree_callback_t)(const struct wimlib_dir_entry *dentry,
1702 void *user_ctx);
1703
1709 void *user_ctx);
1710
1713#define WIMLIB_ITERATE_DIR_TREE_FLAG_RECURSIVE 0x00000001
1714
1717#define WIMLIB_ITERATE_DIR_TREE_FLAG_CHILDREN 0x00000002
1718
1724#define WIMLIB_ITERATE_DIR_TREE_FLAG_RESOURCES_NEEDED 0x00000004
1725
1726
1740#define WIMLIB_ADD_FLAG_NTFS 0x00000001
1741
1744#define WIMLIB_ADD_FLAG_DEREFERENCE 0x00000002
1745
1749#define WIMLIB_ADD_FLAG_VERBOSE 0x00000004
1750
1759#define WIMLIB_ADD_FLAG_BOOT 0x00000008
1760
1766#define WIMLIB_ADD_FLAG_UNIX_DATA 0x00000010
1767
1770#define WIMLIB_ADD_FLAG_NO_ACLS 0x00000020
1771
1777#define WIMLIB_ADD_FLAG_STRICT_ACLS 0x00000040
1778
1783#define WIMLIB_ADD_FLAG_EXCLUDE_VERBOSE 0x00000080
1784
1792#define WIMLIB_ADD_FLAG_RPFIX 0x00000100
1793
1795#define WIMLIB_ADD_FLAG_NORPFIX 0x00000200
1796
1801#define WIMLIB_ADD_FLAG_NO_UNSUPPORTED_EXCLUDE 0x00000400
1802
1818#define WIMLIB_ADD_FLAG_WINCONFIG 0x00000800
1819
1848#define WIMLIB_ADD_FLAG_WIMBOOT 0x00001000
1849
1856#define WIMLIB_ADD_FLAG_NO_REPLACE 0x00002000
1857
1865#define WIMLIB_ADD_FLAG_TEST_FILE_EXCLUSION 0x00004000
1866
1877#define WIMLIB_ADD_FLAG_SNAPSHOT 0x00008000
1878
1887#define WIMLIB_ADD_FLAG_FILE_PATHS_UNNEEDED 0x00010000
1888
1894#define WIMLIB_DELETE_FLAG_FORCE 0x00000001
1895
1898#define WIMLIB_DELETE_FLAG_RECURSIVE 0x00000002
1899
1910#define WIMLIB_EXPORT_FLAG_BOOT 0x00000001
1911
1915#define WIMLIB_EXPORT_FLAG_NO_NAMES 0x00000002
1916
1918#define WIMLIB_EXPORT_FLAG_NO_DESCRIPTIONS 0x00000004
1919
1923#define WIMLIB_EXPORT_FLAG_GIFT 0x00000008
1924
1940#define WIMLIB_EXPORT_FLAG_WIMBOOT 0x00000010
1941
1955#define WIMLIB_EXTRACT_FLAG_NTFS 0x00000001
1956
1959#define WIMLIB_EXTRACT_FLAG_RECOVER_DATA 0x00000002
1960
1963#define WIMLIB_EXTRACT_FLAG_UNIX_DATA 0x00000020
1964
1967#define WIMLIB_EXTRACT_FLAG_NO_ACLS 0x00000040
1968
1978#define WIMLIB_EXTRACT_FLAG_STRICT_ACLS 0x00000080
1979
1988#define WIMLIB_EXTRACT_FLAG_RPFIX 0x00000100
1989
1993#define WIMLIB_EXTRACT_FLAG_NORPFIX 0x00000200
1994
1997#define WIMLIB_EXTRACT_FLAG_TO_STDOUT 0x00000400
1998
2008#define WIMLIB_EXTRACT_FLAG_REPLACE_INVALID_FILENAMES 0x00000800
2009
2018#define WIMLIB_EXTRACT_FLAG_ALL_CASE_CONFLICTS 0x00001000
2019
2023#define WIMLIB_EXTRACT_FLAG_STRICT_TIMESTAMPS 0x00002000
2024
2027#define WIMLIB_EXTRACT_FLAG_STRICT_SHORT_NAMES 0x00004000
2028
2033#define WIMLIB_EXTRACT_FLAG_STRICT_SYMLINKS 0x00008000
2034
2048#define WIMLIB_EXTRACT_FLAG_GLOB_PATHS 0x00040000
2049
2053#define WIMLIB_EXTRACT_FLAG_STRICT_GLOB 0x00080000
2054
2060#define WIMLIB_EXTRACT_FLAG_NO_ATTRIBUTES 0x00100000
2061
2068#define WIMLIB_EXTRACT_FLAG_NO_PRESERVE_DIR_STRUCTURE 0x00200000
2069
2076#define WIMLIB_EXTRACT_FLAG_WIMBOOT 0x00400000
2077
2086#define WIMLIB_EXTRACT_FLAG_COMPACT_XPRESS4K 0x01000000
2087
2090#define WIMLIB_EXTRACT_FLAG_COMPACT_XPRESS8K 0x02000000
2091
2094#define WIMLIB_EXTRACT_FLAG_COMPACT_XPRESS16K 0x04000000
2095
2098#define WIMLIB_EXTRACT_FLAG_COMPACT_LZX 0x08000000
2099
2105#define WIMLIB_MOUNT_FLAG_READWRITE 0x00000001
2106
2108#define WIMLIB_MOUNT_FLAG_DEBUG 0x00000002
2109
2111#define WIMLIB_MOUNT_FLAG_STREAM_INTERFACE_NONE 0x00000004
2112
2116#define WIMLIB_MOUNT_FLAG_STREAM_INTERFACE_XATTR 0x00000008
2117
2120#define WIMLIB_MOUNT_FLAG_STREAM_INTERFACE_WINDOWS 0x00000010
2121
2123#define WIMLIB_MOUNT_FLAG_UNIX_DATA 0x00000020
2124
2127#define WIMLIB_MOUNT_FLAG_ALLOW_OTHER 0x00000040
2128
2139#define WIMLIB_OPEN_FLAG_CHECK_INTEGRITY 0x00000001
2140
2144#define WIMLIB_OPEN_FLAG_ERROR_IF_SPLIT 0x00000002
2145
2154#define WIMLIB_OPEN_FLAG_WRITE_ACCESS 0x00000004
2155
2162#define WIMLIB_UNMOUNT_FLAG_CHECK_INTEGRITY 0x00000001
2163
2166#define WIMLIB_UNMOUNT_FLAG_COMMIT 0x00000002
2167
2170#define WIMLIB_UNMOUNT_FLAG_REBUILD 0x00000004
2171
2174#define WIMLIB_UNMOUNT_FLAG_RECOMPRESS 0x00000008
2175
2184#define WIMLIB_UNMOUNT_FLAG_FORCE 0x00000010
2185
2190#define WIMLIB_UNMOUNT_FLAG_NEW_IMAGE 0x00000020
2191
2198#define WIMLIB_UPDATE_FLAG_SEND_PROGRESS 0x00000001
2199
2212#define WIMLIB_WRITE_FLAG_CHECK_INTEGRITY 0x00000001
2213
2219#define WIMLIB_WRITE_FLAG_NO_CHECK_INTEGRITY 0x00000002
2220
2233#define WIMLIB_WRITE_FLAG_PIPABLE 0x00000004
2234
2239#define WIMLIB_WRITE_FLAG_NOT_PIPABLE 0x00000008
2240
2266#define WIMLIB_WRITE_FLAG_RECOMPRESS 0x00000010
2267
2281#define WIMLIB_WRITE_FLAG_FSYNC 0x00000020
2282
2295#define WIMLIB_WRITE_FLAG_REBUILD 0x00000040
2296
2306#define WIMLIB_WRITE_FLAG_SOFT_DELETE 0x00000080
2307
2317#define WIMLIB_WRITE_FLAG_IGNORE_READONLY_FLAG 0x00000100
2318
2325#define WIMLIB_WRITE_FLAG_SKIP_EXTERNAL_WIMS 0x00000200
2326
2328#define WIMLIB_WRITE_FLAG_STREAMS_OK 0x00000400
2329
2336#define WIMLIB_WRITE_FLAG_RETAIN_GUID 0x00000800
2337
2373#define WIMLIB_WRITE_FLAG_SOLID 0x00001000
2374
2380#define WIMLIB_WRITE_FLAG_SEND_DONE_WITH_FILE_MESSAGES 0x00002000
2381
2387#define WIMLIB_WRITE_FLAG_NO_SOLID_SORT 0x00004000
2388
2405#define WIMLIB_WRITE_FLAG_UNSAFE_COMPACT 0x00008000
2406
2412#define WIMLIB_INIT_FLAG_ASSUME_UTF8 0x00000001
2413
2422#define WIMLIB_INIT_FLAG_DONT_ACQUIRE_PRIVILEGES 0x00000002
2423
2429#define WIMLIB_INIT_FLAG_STRICT_CAPTURE_PRIVILEGES 0x00000004
2430
2436#define WIMLIB_INIT_FLAG_STRICT_APPLY_PRIVILEGES 0x00000008
2437
2440#define WIMLIB_INIT_FLAG_DEFAULT_CASE_SENSITIVE 0x00000010
2441
2444#define WIMLIB_INIT_FLAG_DEFAULT_CASE_INSENSITIVE 0x00000020
2445
2452#define WIMLIB_REF_FLAG_GLOB_ENABLE 0x00000001
2453
2461#define WIMLIB_REF_FLAG_GLOB_ERR_ON_NOMATCH 0x00000002
2462
2478
2495
2505
2518
2521
2523
2524 union {
2526 struct wimlib_delete_command delete_; /* Underscore is for C++
2527 compatibility. */
2529 };
2530};
2531
2624};
2625
2626
2628#define WIMLIB_NO_IMAGE 0
2629
2631#define WIMLIB_ALL_IMAGES (-1)
2632
2663WIMLIBAPI int
2665 const wimlib_tchar *name,
2666 int *new_idx_ret);
2667
2719WIMLIBAPI int
2721 const wimlib_tchar *source,
2722 const wimlib_tchar *name,
2723 const wimlib_tchar *config_file,
2724 int add_flags);
2725
2736WIMLIBAPI int
2738 const struct wimlib_capture_source *sources,
2739 size_t num_sources,
2740 const wimlib_tchar *name,
2741 const wimlib_tchar *config_file,
2742 int add_flags);
2743
2753WIMLIBAPI int
2755 const wimlib_tchar *fs_source_path,
2756 const wimlib_tchar *wim_target_path, int add_flags);
2757
2786WIMLIBAPI int
2788
2817WIMLIBAPI int
2819
2828WIMLIBAPI int
2830 const wimlib_tchar *path, int delete_flags);
2831
2900WIMLIBAPI int
2901wimlib_export_image(WIMStruct *src_wim, int src_image,
2902 WIMStruct *dest_wim,
2903 const wimlib_tchar *dest_name,
2904 const wimlib_tchar *dest_description,
2905 int export_flags);
2906
3019WIMLIBAPI int
3021 const wimlib_tchar *target, int extract_flags);
3022
3061WIMLIBAPI int
3063 const wimlib_tchar *image_num_or_name,
3064 const wimlib_tchar *target, int extract_flags);
3065
3075WIMLIBAPI int
3077 const wimlib_tchar *image_num_or_name,
3078 const wimlib_tchar *target,
3079 int extract_flags,
3080 wimlib_progress_func_t progfunc,
3081 void *progctx);
3082
3102WIMLIBAPI int
3104 const wimlib_tchar *target,
3105 const wimlib_tchar *path_list_file,
3106 int extract_flags);
3107
3177WIMLIBAPI int
3179 int image,
3180 const wimlib_tchar *target,
3181 const wimlib_tchar * const *paths,
3182 size_t num_paths,
3183 int extract_flags);
3184
3199WIMLIBAPI int
3201
3214WIMLIBAPI void
3216
3230WIMLIBAPI const wimlib_tchar *
3232
3246WIMLIBAPI const wimlib_tchar *
3248
3255WIMLIBAPI const wimlib_tchar *
3257
3266WIMLIBAPI const wimlib_tchar *
3267wimlib_get_image_name(const WIMStruct *wim, int image);
3268
3297WIMLIBAPI const wimlib_tchar *
3299 const wimlib_tchar *property_name);
3300
3312WIMLIBAPI uint32_t
3314
3322WIMLIBAPI const wimlib_tchar *
3324
3339WIMLIBAPI int
3341
3369WIMLIBAPI int
3370wimlib_get_xml_data(WIMStruct *wim, void **buf_ret, size_t *bufsize_ret);
3371
3390WIMLIBAPI int
3391wimlib_global_init(int init_flags);
3392
3399WIMLIBAPI void
3401
3418WIMLIBAPI bool
3420
3465WIMLIBAPI int
3467 int flags,
3468 wimlib_iterate_dir_tree_callback_t cb, void *user_ctx);
3469
3499WIMLIBAPI int
3502 void *user_ctx);
3503
3540WIMLIBAPI int
3541wimlib_join(const wimlib_tchar * const *swms,
3542 unsigned num_swms,
3543 const wimlib_tchar *output_path,
3544 int swm_open_flags,
3545 int wim_write_flags);
3546
3558WIMLIBAPI int
3560 unsigned num_swms,
3561 const wimlib_tchar *output_path,
3562 int swm_open_flags,
3563 int wim_write_flags,
3564 wimlib_progress_func_t progfunc,
3565 void *progctx);
3566
3582WIMLIBAPI int
3584 wimlib_tchar **tstr_ret, size_t *tstr_nchars_ret);
3585
3661WIMLIBAPI int
3663 int image,
3664 const wimlib_tchar *dir,
3665 int mount_flags,
3666 const wimlib_tchar *staging_dir);
3667
3737WIMLIBAPI int
3739 int open_flags,
3740 WIMStruct **wim_ret);
3741
3753WIMLIBAPI int
3755 int open_flags,
3756 WIMStruct **wim_ret,
3757 wimlib_progress_func_t progfunc,
3758 void *progctx);
3759
3819WIMLIBAPI int
3820wimlib_overwrite(WIMStruct *wim, int write_flags, unsigned num_threads);
3821
3842WIMLIBAPI void
3844
3850WIMLIBAPI void
3852
3894WIMLIBAPI int
3896 const wimlib_tchar * const *resource_wimfiles_or_globs,
3897 unsigned count,
3898 int ref_flags,
3899 int open_flags);
3900
3921WIMLIBAPI int
3923 unsigned num_resource_wims, int ref_flags);
3924
3987WIMLIBAPI int
3989 WIMStruct *template_wim, int template_image,
3990 int flags);
3991
4007WIMLIBAPI void
4009 wimlib_progress_func_t progfunc,
4010 void *progctx);
4011
4021WIMLIBAPI int
4023 const wimlib_tchar *source_path, const wimlib_tchar *dest_path);
4024
4055WIMLIBAPI int
4057 const wimlib_tchar *image_name_or_num);
4058
4073WIMLIBAPI int
4075
4090WIMLIBAPI int
4092
4101WIMLIBAPI int
4103 const wimlib_tchar *description);
4104
4112WIMLIBAPI int
4113wimlib_set_image_flags(WIMStruct *wim, int image, const wimlib_tchar *flags);
4114
4121WIMLIBAPI int
4122wimlib_set_image_name(WIMStruct *wim, int image, const wimlib_tchar *name);
4123
4161WIMLIBAPI int
4163 const wimlib_tchar *property_name,
4164 const wimlib_tchar *property_value);
4165
4194WIMLIBAPI int
4195wimlib_set_memory_allocator(void *(*malloc_func)(size_t),
4196 void (*free_func)(void *),
4197 void *(*realloc_func)(void *, size_t));
4198
4224WIMLIBAPI int
4225wimlib_set_output_chunk_size(WIMStruct *wim, uint32_t chunk_size);
4226
4233WIMLIBAPI int
4235
4255WIMLIBAPI int
4257 enum wimlib_compression_type ctype);
4258
4265WIMLIBAPI int
4267 enum wimlib_compression_type ctype);
4268
4288WIMLIBAPI int
4289wimlib_set_print_errors(bool show_messages);
4290
4314WIMLIBAPI int
4316 int which);
4317
4358WIMLIBAPI int
4360 const wimlib_tchar *swm_name,
4361 uint64_t part_size,
4362 int write_flags);
4363
4401WIMLIBAPI int
4402wimlib_verify_wim(WIMStruct *wim, int verify_flags);
4403
4437WIMLIBAPI int
4438wimlib_unmount_image(const wimlib_tchar *dir, int unmount_flags);
4439
4448WIMLIBAPI int
4450 int unmount_flags,
4451 wimlib_progress_func_t progfunc,
4452 void *progctx);
4453
4544WIMLIBAPI int
4546 int image,
4547 const struct wimlib_update_command *cmds,
4548 size_t num_cmds,
4549 int update_flags);
4550
4612WIMLIBAPI int
4614 const wimlib_tchar *path,
4615 int image,
4616 int write_flags,
4617 unsigned num_threads);
4618
4639WIMLIBAPI int
4641 int fd,
4642 int image,
4643 int write_flags,
4644 unsigned num_threads);
4645
4663struct wimlib_compressor;
4664
4666struct wimlib_decompressor;
4667
4697WIMLIBAPI int
4698wimlib_set_default_compression_level(int ctype, unsigned int compression_level);
4699
4708WIMLIBAPI uint64_t
4710 size_t max_block_size,
4711 unsigned int compression_level);
4712
4713#define WIMLIB_COMPRESSOR_FLAG_DESTRUCTIVE 0x80000000
4714
4783WIMLIBAPI int
4785 size_t max_block_size,
4786 unsigned int compression_level,
4787 struct wimlib_compressor **compressor_ret);
4788
4809WIMLIBAPI size_t
4810wimlib_compress(const void *uncompressed_data, size_t uncompressed_size,
4811 void *compressed_data, size_t compressed_size_avail,
4812 struct wimlib_compressor *compressor);
4813
4820WIMLIBAPI void
4821wimlib_free_compressor(struct wimlib_compressor *compressor);
4822
4856WIMLIBAPI int
4858 size_t max_block_size,
4859 struct wimlib_decompressor **decompressor_ret);
4860
4888WIMLIBAPI int
4889wimlib_decompress(const void *compressed_data, size_t compressed_size,
4890 void *uncompressed_data, size_t uncompressed_size,
4891 struct wimlib_decompressor *decompressor);
4892
4899WIMLIBAPI void
4900wimlib_free_decompressor(struct wimlib_decompressor *decompressor);
4901
4902
4908#ifdef __cplusplus
4909}
4910#endif
4911
4912#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:481
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:507
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:473
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:465
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:2542
WIMLIBAPI int wimlib_load_text_file(const wimlib_tchar *path, wimlib_tchar **tstr_ret, size_t *tstr_nchars_ret)
Load a UTF-8 or UTF-16LE encoded text file into memory.
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:519
@ WIMLIB_ERR_INVALID_IMAGE
Definition wimlib.h:2556
@ WIMLIB_ERR_SET_XATTR
Definition wimlib.h:2623
@ WIMLIB_ERR_UNABLE_TO_READ_CAPTURE_CONFIG
Definition wimlib.h:2615
@ WIMLIB_ERR_READLINK
Definition wimlib.h:2586
@ WIMLIB_ERR_PATH_DOES_NOT_EXIST
Definition wimlib.h:2584
@ WIMLIB_ERR_DECOMPRESSION
Definition wimlib.h:2545
@ WIMLIB_ERR_XML
Definition wimlib.h:2605
@ WIMLIB_ERR_SPLIT_INVALID
Definition wimlib.h:2596
@ WIMLIB_ERR_INVALID_XATTR
Definition wimlib.h:2622
@ WIMLIB_ERR_INVALID_INTEGRITY_TABLE
Definition wimlib.h:2557
@ WIMLIB_ERR_SNAPSHOT_FAILURE
Definition wimlib.h:2621
@ WIMLIB_ERR_READ
Definition wimlib.h:2585
@ WIMLIB_ERR_IMAGE_HAS_MULTIPLE_REFERENCES
Definition wimlib.h:2618
@ WIMLIB_ERR_REPARSE_POINT_FIXUP_FAILED
Definition wimlib.h:2588
@ WIMLIB_ERR_INVALID_PARAM
Definition wimlib.h:2561
@ WIMLIB_ERR_RESOURCE_NOT_FOUND
Definition wimlib.h:2589
@ WIMLIB_ERR_MOUNTED_IMAGE_IS_BUSY
Definition wimlib.h:2611
@ WIMLIB_ERR_INVALID_UTF8_STRING
Definition wimlib.h:2567
@ WIMLIB_ERR_UNSUPPORTED_FILE
Definition wimlib.h:2602
@ WIMLIB_ERR_INSUFFICIENT_PRIVILEGES
Definition wimlib.h:2550
@ WIMLIB_ERR_SET_TIMESTAMPS
Definition wimlib.h:2595
@ WIMLIB_ERR_OPENDIR
Definition wimlib.h:2583
@ WIMLIB_ERR_NTFS_3G
Definition wimlib.h:2581
@ WIMLIB_ERR_IMAGE_NAME_COLLISION
Definition wimlib.h:2549
@ WIMLIB_ERR_RENAME
Definition wimlib.h:2587
@ WIMLIB_ERR_NOT_A_WIM_FILE
Definition wimlib.h:2578
@ WIMLIB_ERR_UNKNOWN_PROGRESS_STATUS
Definition wimlib.h:2609
@ WIMLIB_ERR_NO_FILENAME
Definition wimlib.h:2580
@ WIMLIB_ERR_WRITE
Definition wimlib.h:2604
@ WIMLIB_ERR_INVALID_LOOKUP_TABLE_ENTRY
Definition wimlib.h:2558
@ WIMLIB_ERR_NOT_A_REGULAR_FILE
Definition wimlib.h:2577
@ WIMLIB_ERR_STAT
Definition wimlib.h:2597
@ WIMLIB_ERR_NOT_PIPABLE
Definition wimlib.h:2579
@ WIMLIB_ERR_IS_DIRECTORY
Definition wimlib.h:2568
@ WIMLIB_ERR_METADATA_NOT_FOUND
Definition wimlib.h:2571
@ WIMLIB_ERR_ABORTED_BY_PROGRESS
Definition wimlib.h:2608
@ WIMLIB_ERR_WIMBOOT
Definition wimlib.h:2607
@ WIMLIB_ERR_WIM_IS_INCOMPLETE
Definition wimlib.h:2616
@ WIMLIB_ERR_UNKNOWN_VERSION
Definition wimlib.h:2600
@ WIMLIB_ERR_INVALID_METADATA_RESOURCE
Definition wimlib.h:2559
@ WIMLIB_ERR_SET_SECURITY
Definition wimlib.h:2593
@ WIMLIB_ERR_OPEN
Definition wimlib.h:2582
@ WIMLIB_ERR_IS_SPLIT_WIM
Definition wimlib.h:2569
@ WIMLIB_ERR_SET_SHORT_NAME
Definition wimlib.h:2594
@ WIMLIB_ERR_NOMEM
Definition wimlib.h:2574
@ WIMLIB_ERR_INVALID_OVERLAY
Definition wimlib.h:2560
@ WIMLIB_ERR_MKNOD
Definition wimlib.h:2610
@ WIMLIB_ERR_INVALID_RESOURCE_HASH
Definition wimlib.h:2565
@ WIMLIB_ERR_SET_REPARSE_DATA
Definition wimlib.h:2592
@ WIMLIB_ERR_MKDIR
Definition wimlib.h:2572
@ WIMLIB_ERR_FUSE
Definition wimlib.h:2546
@ WIMLIB_ERR_INVALID_REPARSE_DATA
Definition wimlib.h:2564
@ WIMLIB_ERR_DUPLICATE_EXPORTED_IMAGE
Definition wimlib.h:2619
@ WIMLIB_ERR_SUCCESS
Definition wimlib.h:2543
@ WIMLIB_ERR_NOTEMPTY
Definition wimlib.h:2576
@ WIMLIB_ERR_UNSUPPORTED
Definition wimlib.h:2601
@ WIMLIB_ERR_INVALID_CAPTURE_CONFIG
Definition wimlib.h:2552
@ WIMLIB_ERR_INVALID_CHUNK_SIZE
Definition wimlib.h:2553
@ WIMLIB_ERR_LINK
Definition wimlib.h:2570
@ WIMLIB_ERR_INVALID_PIPABLE_WIM
Definition wimlib.h:2563
@ WIMLIB_ERR_IMAGE_COUNT
Definition wimlib.h:2548
@ WIMLIB_ERR_INVALID_HEADER
Definition wimlib.h:2555
@ WIMLIB_ERR_UNEXPECTED_END_OF_FILE
Definition wimlib.h:2598
@ WIMLIB_ERR_GLOB_HAD_NO_MATCHES
Definition wimlib.h:2547
@ WIMLIB_ERR_NOTDIR
Definition wimlib.h:2575
@ WIMLIB_ERR_UNICODE_STRING_NOT_REPRESENTABLE
Definition wimlib.h:2599
@ WIMLIB_ERR_FVE_LOCKED_VOLUME
Definition wimlib.h:2614
@ WIMLIB_ERR_COMPACTION_NOT_POSSIBLE
Definition wimlib.h:2617
@ WIMLIB_ERR_SET_ATTRIBUTES
Definition wimlib.h:2591
@ WIMLIB_ERR_INVALID_UTF16_STRING
Definition wimlib.h:2566
@ WIMLIB_ERR_NOT_PERMITTED_TO_UNMOUNT
Definition wimlib.h:2613
@ WIMLIB_ERR_INTEGRITY
Definition wimlib.h:2551
@ WIMLIB_ERR_WIM_IS_ENCRYPTED
Definition wimlib.h:2606
@ WIMLIB_ERR_RESOURCE_ORDER
Definition wimlib.h:2590
@ WIMLIB_ERR_INVALID_COMPRESSION_TYPE
Definition wimlib.h:2554
@ WIMLIB_ERR_ALREADY_LOCKED
Definition wimlib.h:2544
@ WIMLIB_ERR_MQUEUE
Definition wimlib.h:2573
@ WIMLIB_ERR_INVALID_PART_NUMBER
Definition wimlib.h:2562
@ WIMLIB_ERR_WIM_IS_READONLY
Definition wimlib.h:2603
@ WIMLIB_ERR_NOT_A_MOUNTPOINT
Definition wimlib.h:2612
@ WIMLIB_ERR_CONCURRENT_MODIFICATION_DETECTED
Definition wimlib.h:2620
@ WIMLIB_COMPRESSION_TYPE_NONE
No compression.
Definition wimlib.h:527
@ WIMLIB_COMPRESSION_TYPE_LZMS
The LZMS compression format.
Definition wimlib.h:592
@ WIMLIB_COMPRESSION_TYPE_LZX
The LZX compression format.
Definition wimlib.h:569
@ WIMLIB_COMPRESSION_TYPE_XPRESS
The XPRESS compression format.
Definition wimlib.h:547
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:2468
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:2476
@ WIMLIB_UPDATE_OP_DELETE
Delete a file or directory tree from the image.
Definition wimlib.h:2473
@ WIMLIB_UPDATE_OP_ADD
Add a new file or directory tree to the image.
Definition wimlib.h:2470
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:809
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:1275
wimlib_progress_msg
Possible values of the first parameter to the user-supplied wimlib_progress_func_t progress function.
Definition wimlib.h:601
@ WIMLIB_PROGRESS_STATUS_CONTINUE
The operation should be continued.
Definition wimlib.h:813
@ WIMLIB_PROGRESS_STATUS_ABORT
The operation should be aborted.
Definition wimlib.h:817
@ 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:710
@ WIMLIB_PROGRESS_MSG_UNMOUNT_BEGIN
Starting to unmount an image.
Definition wimlib.h:745
@ WIMLIB_PROGRESS_MSG_VERIFY_STREAMS
wimlib_verify_wim() is verifying file data integrity.
Definition wimlib.h:764
@ WIMLIB_PROGRESS_MSG_EXTRACT_SPWM_PART_BEGIN
Starting to read a new part of a split pipable WIM over the pipe.
Definition wimlib.h:631
@ WIMLIB_PROGRESS_MSG_EXTRACT_IMAGE_END
The image has been successfully extracted.
Definition wimlib.h:644
@ 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:733
@ WIMLIB_PROGRESS_MSG_VERIFY_INTEGRITY
The contents of the WIM file are being checked against the integrity table.
Definition wimlib.h:699
@ WIMLIB_PROGRESS_MSG_EXTRACT_STREAMS
File data is currently being extracted.
Definition wimlib.h:627
@ WIMLIB_PROGRESS_MSG_END_VERIFY_IMAGE
wimlib_verify_wim() has finished verifying the metadata for an image.
Definition wimlib.h:760
@ 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:614
@ WIMLIB_PROGRESS_MSG_WRITE_METADATA_END
The per-image metadata has been written to the WIM file.
Definition wimlib.h:685
@ 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:800
@ WIMLIB_PROGRESS_MSG_SPLIT_END_PART
A wimlib_split() operation is in progress, and a split part has been finished.
Definition wimlib.h:714
@ WIMLIB_PROGRESS_MSG_WRITE_STREAMS
File data is currently being written to the WIM.
Definition wimlib.h:676
@ WIMLIB_PROGRESS_MSG_RENAME
wimlib_overwrite() has successfully renamed the temporary file to the original WIM file,...
Definition wimlib.h:692
@ 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:778
@ 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:741
@ WIMLIB_PROGRESS_MSG_BEGIN_VERIFY_IMAGE
wimlib_verify_wim() is starting to verify the metadata for an image.
Definition wimlib.h:755
@ WIMLIB_PROGRESS_MSG_UPDATE_BEGIN_COMMAND
A WIM update command is about to be executed.
Definition wimlib.h:720
@ WIMLIB_PROGRESS_MSG_EXTRACT_TREE_END
The files or directory trees have been successfully extracted.
Definition wimlib.h:649
@ WIMLIB_PROGRESS_MSG_CALC_INTEGRITY
An integrity table is being calculated for the WIM being written.
Definition wimlib.h:705
@ WIMLIB_PROGRESS_MSG_SCAN_DENTRY
A directory or file has been scanned.
Definition wimlib.h:662
@ WIMLIB_PROGRESS_MSG_EXTRACT_METADATA
This message may be sent periodically (not necessarily for every file) while file and directory metad...
Definition wimlib.h:639
@ 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:751
@ WIMLIB_PROGRESS_MSG_UPDATE_END_COMMAND
A WIM update command has been executed.
Definition wimlib.h:726
@ 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:622
@ WIMLIB_PROGRESS_MSG_WRITE_METADATA_BEGIN
Per-image metadata is about to be written to the WIM file.
Definition wimlib.h:680
@ WIMLIB_PROGRESS_MSG_EXTRACT_IMAGE_BEGIN
A WIM image is about to be extracted.
Definition wimlib.h:607
@ WIMLIB_PROGRESS_MSG_SCAN_BEGIN
The directory or NTFS volume is about to be scanned for metadata.
Definition wimlib.h:656
@ WIMLIB_PROGRESS_MSG_SCAN_END
The directory or NTFS volume has been successfully scanned.
Definition wimlib.h:668
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:1708
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:1701
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:2480
int add_flags
Bitwise OR of WIMLIB_ADD_FLAG_* flags.
Definition wimlib.h:2493
wimlib_tchar * fs_source_path
Filesystem path to the file or directory tree to add.
Definition wimlib.h:2482
wimlib_tchar * config_file
Path to capture configuration file to use, or NULL if not specified.
Definition wimlib.h:2490
wimlib_tchar * wim_target_path
Destination path in the image.
Definition wimlib.h:2486
An array of these structures is passed to wimlib_add_image_multisource() to specify the sources from ...
Definition wimlib.h:1285
wimlib_tchar * wim_target_path
Destination path in the image.
Definition wimlib.h:1292
long reserved
Reserved; set to 0.
Definition wimlib.h:1295
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:1288
Data for a WIMLIB_UPDATE_OP_DELETE operation.
Definition wimlib.h:2497
wimlib_tchar * wim_path
The path to the file or directory within the image to delete.
Definition wimlib.h:2500
int delete_flags
Bitwise OR of WIMLIB_DELETE_FLAG_* flags.
Definition wimlib.h:2503
Structure passed to the wimlib_iterate_dir_tree() callback function.
Definition wimlib.h:1546
size_t depth
Depth of this directory entry, where 0 is the root, 1 is the root's children, ...,...
Definition wimlib.h:1561
struct wimlib_timespec last_access_time
Time this file was last accessed.
Definition wimlib.h:1635
struct wimlib_object_id object_id
Definition wimlib.h:1662
uint32_t unix_uid
The UNIX user ID of this file.
Definition wimlib.h:1640
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:1670
uint32_t reparse_tag
If the file is a reparse point (FILE_ATTRIBUTE_REPARSE_POINT set in the attributes),...
Definition wimlib.h:1608
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:1674
const char * security_descriptor
Pointer to the security descriptor for this file, in Windows SECURITY_DESCRIPTOR_RELATIVE format,...
Definition wimlib.h:1566
uint32_t unix_rdev
The UNIX device ID (major and minor number) of this file.
Definition wimlib.h:1658
uint64_t hard_link_group_id
A unique identifier for this file's inode.
Definition wimlib.h:1626
uint64_t reserved[4]
Definition wimlib.h:1678
uint32_t num_links
Number of links to this file's inode (hard links).
Definition wimlib.h:1614
int32_t creation_time_high
High 32 bits of the seconds portion of the creation timestamp, filled in if wimlib_timespec....
Definition wimlib.h:1666
struct wimlib_timespec last_write_time
Time this file was last written to.
Definition wimlib.h:1632
const wimlib_tchar * filename
Name of the file, or NULL if this file is unnamed.
Definition wimlib.h:1549
uint32_t attributes
File attributes, such as whether the file is a directory or not.
Definition wimlib.h:1590
uint32_t num_named_streams
Number of named data streams this file has.
Definition wimlib.h:1617
size_t security_descriptor_size
Size of the above security descriptor, in bytes.
Definition wimlib.h:1569
struct wimlib_stream_entry streams[]
Variable-length array of streams that make up this file.
Definition wimlib.h:1694
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:1553
const wimlib_tchar * full_path
Full path to this file within the image.
Definition wimlib.h:1557
uint32_t unix_gid
The UNIX group ID of this file.
Definition wimlib.h:1645
uint32_t unix_mode
The UNIX mode of this file.
Definition wimlib.h:1652
struct wimlib_timespec creation_time
Time this file was created.
Definition wimlib.h:1629
int32_t reserved2
Definition wimlib.h:1676
Since wimlib v1.9.1: an object ID, which is an extra piece of metadata that may be associated with a ...
Definition wimlib.h:1535
uint8_t birth_volume_id[WIMLIB_GUID_LEN]
Definition wimlib.h:1537
uint8_t object_id[WIMLIB_GUID_LEN]
Definition wimlib.h:1536
uint8_t birth_object_id[WIMLIB_GUID_LEN]
Definition wimlib.h:1538
uint8_t domain_id[WIMLIB_GUID_LEN]
Definition wimlib.h:1539
Valid on messages WIMLIB_PROGRESS_MSG_DONE_WITH_FILE.
Definition wimlib.h:1172
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:1191
Valid on messages WIMLIB_PROGRESS_MSG_EXTRACT_SPWM_PART_BEGIN, WIMLIB_PROGRESS_MSG_EXTRACT_IMAGE_BEGI...
Definition wimlib.h:972
uint32_t extract_flags
Extraction flags being used.
Definition wimlib.h:979
uint64_t completed_bytes
The number of bytes of file data that have been extracted so far.
Definition wimlib.h:1002
uint64_t end_file_count
For WIMLIB_PROGRESS_MSG_EXTRACT_FILE_STRUCTURE and WIMLIB_PROGRESS_MSG_EXTRACT_METADATA messages,...
Definition wimlib.h:1049
uint64_t current_file_count
For WIMLIB_PROGRESS_MSG_EXTRACT_FILE_STRUCTURE and WIMLIB_PROGRESS_MSG_EXTRACT_METADATA messages,...
Definition wimlib.h:1031
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:988
uint32_t total_parts
Currently only used for WIMLIB_PROGRESS_MSG_EXTRACT_SPWM_PART_BEGIN.
Definition wimlib.h:1020
uint64_t total_bytes
The number of bytes of file data that will be extracted.
Definition wimlib.h:998
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:984
uint64_t completed_streams
The number of file streams that have been extracted so far.
Definition wimlib.h:1012
uint32_t part_number
Currently only used for WIMLIB_PROGRESS_MSG_EXTRACT_SPWM_PART_BEGIN.
Definition wimlib.h:1016
const wimlib_tchar * target
Path to the directory or NTFS volume to which the files are being extracted.
Definition wimlib.h:992
uint8_t guid[WIMLIB_GUID_LEN]
Currently only used for WIMLIB_PROGRESS_MSG_EXTRACT_SPWM_PART_BEGIN.
Definition wimlib.h:1024
const wimlib_tchar * reserved
Reserved.
Definition wimlib.h:995
uint32_t image
The 1-based index of the image from which files are being extracted.
Definition wimlib.h:976
uint64_t total_streams
The number of file streams that will be extracted.
Definition wimlib.h:1008
Valid on messages WIMLIB_PROGRESS_MSG_HANDLE_ERROR.
Definition wimlib.h:1238
bool will_ignore
Indicates whether the error will be ignored or not.
Definition wimlib.h:1252
const wimlib_tchar * path
Path to the file for which the error occurred, or NULL if not relevant.
Definition wimlib.h:1242
int error_code
The wimlib error code associated with the error.
Definition wimlib.h:1245
Valid on messages WIMLIB_PROGRESS_MSG_VERIFY_INTEGRITY and WIMLIB_PROGRESS_MSG_CALC_INTEGRITY.
Definition wimlib.h:1080
uint64_t completed_bytes
The number of bytes that have been checksummed so far.
Definition wimlib.h:1088
uint32_t total_chunks
The number of individually checksummed "chunks" the integrity-checked region is divided into.
Definition wimlib.h:1092
uint64_t total_bytes
The number of bytes in the WIM file that are covered by integrity checks.
Definition wimlib.h:1084
uint32_t completed_chunks
The number of chunks that have been checksummed so far.
Definition wimlib.h:1096
uint32_t chunk_size
The size of each individually checksummed "chunk" in the integrity-checked region.
Definition wimlib.h:1100
const wimlib_tchar * filename
For WIMLIB_PROGRESS_MSG_VERIFY_INTEGRITY messages, this is the path to the WIM file being checked.
Definition wimlib.h:1104
Valid on messages WIMLIB_PROGRESS_MSG_RENAME.
Definition wimlib.h:1053
const wimlib_tchar * from
Name of the temporary file that the WIM was written to.
Definition wimlib.h:1055
const wimlib_tchar * to
Name of the original WIM file to which the temporary file is being renamed.
Definition wimlib.h:1059
Valid on messages WIMLIB_PROGRESS_MSG_REPLACE_FILE_IN_WIM
Definition wimlib.h:1138
const wimlib_tchar * path_in_wim
Path to the file in the image that is being replaced
Definition wimlib.h:1140
Valid on messages WIMLIB_PROGRESS_MSG_SCAN_BEGIN, WIMLIB_PROGRESS_MSG_SCAN_DENTRY,...
Definition wimlib.h:884
const wimlib_tchar * wim_target_path
Target path in the image.
Definition wimlib.h:931
uint64_t num_bytes_scanned
The number of bytes of file data detected so far, not counting excluded/unsupported files.
Definition wimlib.h:950
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:896
uint64_t num_nondirs_scanned
The number of non-directories scanned so far, not counting excluded/unsupported files.
Definition wimlib.h:946
uint64_t num_dirs_scanned
The number of directories scanned so far, not counting excluded/unsupported files.
Definition wimlib.h:942
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:937
@ WIMLIB_SCAN_DENTRY_UNSUPPORTED
File is being excluded from capture due to being of an unsupported type.
Definition wimlib.h:910
@ WIMLIB_SCAN_DENTRY_OK
File looks okay and will be captured.
Definition wimlib.h:902
@ WIMLIB_SCAN_DENTRY_EXCLUDED
File is being excluded from capture due to the capture configuration.
Definition wimlib.h:906
@ 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:924
@ WIMLIB_SCAN_DENTRY_FIXED_SYMLINK
The file is an absolute symbolic link or junction that points into the capture directory,...
Definition wimlib.h:918
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:890
Valid on messages WIMLIB_PROGRESS_MSG_SPLIT_BEGIN_PART and WIMLIB_PROGRESS_MSG_SPLIT_END_PART.
Definition wimlib.h:1109
uint64_t total_bytes
Total size of the original WIM's file and metadata resources (compressed).
Definition wimlib.h:1112
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:1122
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:1117
unsigned total_parts
Total number of split WIM parts that are being written.
Definition wimlib.h:1125
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:1134
Valid on messages WIMLIB_PROGRESS_MSG_TEST_FILE_EXCLUSION.
Definition wimlib.h:1212
bool will_exclude
Indicates whether the file or directory will be excluded from capture or not.
Definition wimlib.h:1234
const wimlib_tchar * path
Path to the file for which exclusion is being tested.
Definition wimlib.h:1226
Valid on messages WIMLIB_PROGRESS_MSG_UNMOUNT_BEGIN.
Definition wimlib.h:1153
uint32_t unmount_flags
Flags passed to wimlib_unmount_image().
Definition wimlib.h:1168
const wimlib_tchar * mountpoint
Path to directory being unmounted
Definition wimlib.h:1155
uint32_t mount_flags
Flags that were passed to wimlib_mount_image() when the mountpoint was set up.
Definition wimlib.h:1165
const wimlib_tchar * mounted_wim
Path to WIM file being unmounted
Definition wimlib.h:1158
uint32_t mounted_image
1-based index of image being unmounted.
Definition wimlib.h:1161
Valid on messages WIMLIB_PROGRESS_MSG_UPDATE_BEGIN_COMMAND and WIMLIB_PROGRESS_MSG_UPDATE_END_COMMAND...
Definition wimlib.h:1064
const struct wimlib_update_command * command
Pointer to the update command that will be executed or has just been executed.
Definition wimlib.h:1067
size_t total_commands
Number of update commands that are being executed as part of this call to wimlib_update_image().
Definition wimlib.h:1075
size_t completed_commands
Number of update commands that have been completed so far.
Definition wimlib.h:1071
Valid on messages WIMLIB_PROGRESS_MSG_BEGIN_VERIFY_IMAGE and WIMLIB_PROGRESS_MSG_END_VERIFY_IMAGE.
Definition wimlib.h:1196
const wimlib_tchar * wimfile
Definition wimlib.h:1197
Valid on messages WIMLIB_PROGRESS_MSG_VERIFY_STREAMS.
Definition wimlib.h:1203
const wimlib_tchar * wimfile
Definition wimlib.h:1204
Valid on messages WIMLIB_PROGRESS_MSG_WIMBOOT_EXCLUDE
Definition wimlib.h:1144
const wimlib_tchar * path_in_wim
Path to the file in the image
Definition wimlib.h:1146
const wimlib_tchar * extraction_path
Path to which the file is being extracted
Definition wimlib.h:1149
Valid on the message WIMLIB_PROGRESS_MSG_WRITE_STREAMS.
Definition wimlib.h:831
uint64_t completed_bytes
The number of bytes of file data that have been written so far.
Definition wimlib.h:853
uint64_t total_bytes
An upper bound on the number of bytes of file data that will be written.
Definition wimlib.h:838
int32_t compression_type
The compression type being used, as one of the wimlib_compression_type constants.
Definition wimlib.h:866
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:871
uint64_t completed_compressed_bytes
Since wimlib v1.13.4: Like completed_bytes, but counts the compressed size.
Definition wimlib.h:878
uint64_t total_streams
An upper bound on the number of distinct file data "blobs" that will be written.
Definition wimlib.h:846
uint32_t num_threads
The number of threads being used for data compression; or, if no compression is being performed,...
Definition wimlib.h:862
uint32_t completed_parts
This is currently broken and will always be 0.
Definition wimlib.h:874
uint64_t completed_streams
The number of distinct file data "blobs" that have been written so far.
Definition wimlib.h:858
Data for a WIMLIB_UPDATE_OP_RENAME operation.
Definition wimlib.h:2507
wimlib_tchar * wim_target_path
The path to the destination file or directory within the image.
Definition wimlib.h:2513
wimlib_tchar * wim_source_path
The path to the source file or directory within the image.
Definition wimlib.h:2510
int rename_flags
Reserved; set to 0.
Definition wimlib.h:2516
Information about a "blob", which is a fixed length sequence of binary data.
Definition wimlib.h:1444
uint32_t reserved_flags
Definition wimlib.h:1491
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:1471
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:1503
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:1462
uint32_t is_free
Definition wimlib.h:1480
uint64_t uncompressed_size
If this blob is not missing, then this is the uncompressed size of this blob in bytes.
Definition wimlib.h:1448
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:1495
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:1452
uint32_t is_compressed
1 iff this blob is located in a non-solid compressed WIM resource.
Definition wimlib.h:1475
uint64_t reserved[1]
Definition wimlib.h:1505
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:1486
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:1458
uint32_t is_spanned
Definition wimlib.h:1481
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:1466
uint32_t is_metadata
1 iff this blob contains the metadata for an image.
Definition wimlib.h:1478
uint32_t packed
1 iff this blob is located in a solid resource.
Definition wimlib.h:1489
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:1499
Information about a stream of a particular file in the WIM.
Definition wimlib.h:1519
struct wimlib_resource_entry resource
Info about this stream's data, such as its hash and size if known.
Definition wimlib.h:1525
uint64_t reserved[4]
Definition wimlib.h:1527
const wimlib_tchar * stream_name
Name of the stream, or NULL if the stream is unnamed.
Definition wimlib.h:1522
Specification of an update to perform on a WIM image.
Definition wimlib.h:2520
struct wimlib_delete_command delete_
Definition wimlib.h:2526
struct wimlib_add_command add
Definition wimlib.h:2525
struct wimlib_rename_command rename
Definition wimlib.h:2528
enum wimlib_update_op op
Definition wimlib.h:2522
General information about a WIM file.
Definition wimlib.h:1339
uint32_t is_marked_readonly
1 iff the "readonly" flag is set in this WIM's header
Definition wimlib.h:1391
uint32_t has_integrity_table
1 iff this WIM file has an integrity table.
Definition wimlib.h:1376
uint32_t reserved[9]
Definition wimlib.h:1408
uint32_t wim_version
The version of the WIM file format used in this WIM file.
Definition wimlib.h:1353
uint32_t is_readonly
1 iff this WIM file is considered readonly for any reason (e.g.
Definition wimlib.h:1385
uint32_t spanned
1 iff the "spanned" flag is set in this WIM's header
Definition wimlib.h:1394
uint32_t resource_only
1 iff the "resource only" flag is set in this WIM's header
Definition wimlib.h:1403
uint32_t chunk_size
The default compression chunk size of resources in this WIM file.
Definition wimlib.h:1357
uint32_t has_rpfix
1 iff the "reparse point fix" flag is set in this WIM's header
Definition wimlib.h:1388
uint32_t image_count
The number of images in this WIM file.
Definition wimlib.h:1346
uint32_t opened_from_file
1 iff this info struct is for a WIMStruct that has a backing file.
Definition wimlib.h:1380
uint16_t total_parts
For split WIMs, the total number of parts in the split WIM; otherwise 1.
Definition wimlib.h:1365
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:1350
uint16_t part_number
For split WIMs, the 1-based index of this part within the split WIM; otherwise 1.
Definition wimlib.h:1361
uint32_t metadata_only
1 iff the "metadata only" flag is set in this WIM's header
Definition wimlib.h:1400
uint32_t pipable
1 iff this WIM file is pipable (see WIMLIB_WRITE_FLAG_PIPABLE).
Definition wimlib.h:1406
uint32_t reserved_flags
Definition wimlib.h:1407
uint8_t guid[WIMLIB_GUID_LEN]
The globally unique identifier for this WIM.
Definition wimlib.h:1343
uint32_t write_in_progress
1 iff the "write in progress" flag is set in this WIM's header
Definition wimlib.h:1397
uint64_t total_bytes
The size of this WIM file in bytes, excluding the XML data and integrity table.
Definition wimlib.h:1373
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:1369
A pointer to this union is passed to the user-supplied wimlib_progress_func_t progress function.
Definition wimlib.h:826
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:423