wimlib
wimlib.h
Go to the documentation of this file.
1 
389 #ifndef _WIMLIB_H
390 #define _WIMLIB_H
391 
392 #include <stdio.h>
393 #include <stddef.h>
394 #ifndef __cplusplus
395 # if defined(_MSC_VER) && _MSC_VER < 1800 /* VS pre-2013? */
396  typedef unsigned char bool;
397 # else
398 # include <stdbool.h>
399 # endif
400 #endif
401 #include <stdint.h>
402 #include <time.h>
403 
408 #define WIMLIB_MAJOR_VERSION 1
409 
411 #define WIMLIB_MINOR_VERSION 13
412 
414 #define WIMLIB_PATCH_VERSION 6
415 
416 #ifdef __cplusplus
417 extern "C" {
418 #endif
419 
420 /*
421  * To represent file timestamps, wimlib's API originally used the POSIX 'struct
422  * timespec'. This was a mistake because when building wimlib for 32-bit
423  * Windows with MinGW we ended up originally using 32-bit time_t which isn't
424  * year 2038-safe, and therefore we had to later add fields like
425  * 'creation_time_high' to hold the high 32 bits of each timestamp. Moreover,
426  * old Visual Studio versions did not define struct timespec, while newer ones
427  * define it but with 64-bit tv_sec. So to at least avoid a missing or
428  * incompatible 'struct timespec' definition, define the correct struct
429  * ourselves when this header is included on Windows.
430  */
431 #ifdef _WIN32
432 struct wimlib_timespec {
433  /* Seconds since start of UNIX epoch (January 1, 1970) */
434 #ifdef _WIN64
435  int64_t tv_sec;
436 #else
437  int32_t tv_sec;
438 #endif
439  /* Nanoseconds (0-999999999) */
440  int32_t tv_nsec;
441 };
442 #else
443 # define wimlib_timespec timespec /* standard definition */
444 #endif
445 
450 #ifndef WIMLIB_WIMSTRUCT_DECLARED
451 typedef struct WIMStruct WIMStruct;
452 #define WIMLIB_WIMSTRUCT_DECLARED
453 #endif
454 
455 #ifdef _WIN32
456 typedef wchar_t wimlib_tchar;
457 #else
459 typedef char wimlib_tchar;
460 #endif
461 
462 #ifdef _WIN32
465 # define WIMLIB_WIM_PATH_SEPARATOR '\\'
466 # define WIMLIB_WIM_PATH_SEPARATOR_STRING L"\\"
467 #else
470 # define WIMLIB_WIM_PATH_SEPARATOR '/'
471 # define WIMLIB_WIM_PATH_SEPARATOR_STRING "/"
472 #endif
473 
476 #define WIMLIB_WIM_ROOT_PATH WIMLIB_WIM_PATH_SEPARATOR_STRING
477 
480 #define WIMLIB_IS_WIM_ROOT_PATH(path) \
481  ((path)[0] == WIMLIB_WIM_PATH_SEPARATOR && \
482  (path)[1] == 0)
483 
485 #define WIMLIB_GUID_LEN 16
486 
506 
526 
548 
571 };
572 
580 
586 
593 
601 
606 
610 
618 
623 
628 
635 
641 
647 
655 
659 
664 
671 
678 
684 
689 
693 
699 
705 
712 
720 
724 
730 
734 
739 
743 
757 
779 };
780 
788 
792 
796 };
797 
805 
810 
816  uint64_t total_bytes;
817 
824  uint64_t total_streams;
825 
831  uint64_t completed_bytes;
832 
837 
840  uint32_t num_threads;
841 
845 
849  uint32_t total_parts;
850 
852  uint32_t completed_parts;
853 
858 
863 
869 
875 
878  enum {
881 
885 
889 
897 
904 
905  union {
910 
916  };
917 
921 
925 
929  } scan;
930 
951 
954  uint32_t image;
955 
957  uint32_t extract_flags;
958 
963 
967 
971 
974 
976  uint64_t total_bytes;
977 
980  uint64_t completed_bytes;
981 
986  uint64_t total_streams;
987 
991 
994  uint32_t part_number;
995 
998  uint32_t total_parts;
999 
1003 
1010 
1027  uint64_t end_file_count;
1029 
1034 
1039 
1046 
1050 
1055 
1059 
1062  uint64_t total_bytes;
1063 
1067 
1070  uint32_t total_chunks;
1071 
1075 
1078  uint32_t chunk_size;
1079 
1084 
1090  uint64_t total_bytes;
1091 
1096 
1101 
1103  unsigned total_parts;
1104 
1114 
1120 
1125 
1129 
1134 
1137 
1139  uint32_t mounted_image;
1140 
1143  uint32_t mount_flags;
1144 
1146  uint32_t unmount_flags;
1148 
1171 
1176  uint32_t total_images;
1177  uint32_t current_image;
1179 
1183  uint64_t total_streams;
1184  uint64_t total_bytes;
1188 
1191 
1205 
1214 
1217 
1221 
1224 
1232 };
1233 
1252 typedef enum wimlib_progress_status
1254  union wimlib_progress_info *info,
1255  void *progctx);
1256 
1267 
1271 
1273  long reserved;
1274 };
1275 
1286 #define WIMLIB_CHANGE_READONLY_FLAG 0x00000001
1287 
1290 #define WIMLIB_CHANGE_GUID 0x00000002
1291 
1294 #define WIMLIB_CHANGE_BOOT_INDEX 0x00000004
1295 
1302 #define WIMLIB_CHANGE_RPFIX_FLAG 0x00000008
1303 
1318 
1322 
1324  uint32_t image_count;
1325 
1328  uint32_t boot_index;
1329 
1331  uint32_t wim_version;
1332 
1335  uint32_t chunk_size;
1336 
1339  uint16_t part_number;
1340 
1343  uint16_t total_parts;
1344 
1348 
1351  uint64_t total_bytes;
1352 
1354  uint32_t has_integrity_table : 1;
1355 
1358  uint32_t opened_from_file : 1;
1359 
1363  uint32_t is_readonly : 1;
1364 
1366  uint32_t has_rpfix : 1;
1367 
1369  uint32_t is_marked_readonly : 1;
1370 
1372  uint32_t spanned : 1;
1373 
1375  uint32_t write_in_progress : 1;
1376 
1378  uint32_t metadata_only : 1;
1379 
1381  uint32_t resource_only : 1;
1382 
1384  uint32_t pipable : 1;
1385  uint32_t reserved_flags : 22;
1386  uint32_t reserved[9];
1387 };
1388 
1423 
1427 
1431 
1436  uint64_t offset;
1437 
1440  uint8_t sha1_hash[20];
1441 
1444  uint32_t part_number;
1445 
1450 
1453  uint32_t is_compressed : 1;
1454 
1456  uint32_t is_metadata : 1;
1457 
1458  uint32_t is_free : 1;
1459  uint32_t is_spanned : 1;
1460 
1464  uint32_t is_missing : 1;
1465 
1467  uint32_t packed : 1;
1468 
1469  uint32_t reserved_flags : 26;
1470 
1474 
1478 
1482 
1483  uint64_t reserved[1];
1484 };
1485 
1498 
1501 
1504 
1505  uint64_t reserved[4];
1506 };
1507 
1518 };
1519 
1528 
1532 
1536 
1539  size_t depth;
1540 
1544  const char *security_descriptor;
1545 
1548 
1549 #define WIMLIB_FILE_ATTRIBUTE_READONLY 0x00000001
1550 #define WIMLIB_FILE_ATTRIBUTE_HIDDEN 0x00000002
1551 #define WIMLIB_FILE_ATTRIBUTE_SYSTEM 0x00000004
1552 #define WIMLIB_FILE_ATTRIBUTE_DIRECTORY 0x00000010
1553 #define WIMLIB_FILE_ATTRIBUTE_ARCHIVE 0x00000020
1554 #define WIMLIB_FILE_ATTRIBUTE_DEVICE 0x00000040
1555 #define WIMLIB_FILE_ATTRIBUTE_NORMAL 0x00000080
1556 #define WIMLIB_FILE_ATTRIBUTE_TEMPORARY 0x00000100
1557 #define WIMLIB_FILE_ATTRIBUTE_SPARSE_FILE 0x00000200
1558 #define WIMLIB_FILE_ATTRIBUTE_REPARSE_POINT 0x00000400
1559 #define WIMLIB_FILE_ATTRIBUTE_COMPRESSED 0x00000800
1560 #define WIMLIB_FILE_ATTRIBUTE_OFFLINE 0x00001000
1561 #define WIMLIB_FILE_ATTRIBUTE_NOT_CONTENT_INDEXED 0x00002000
1562 #define WIMLIB_FILE_ATTRIBUTE_ENCRYPTED 0x00004000
1563 #define WIMLIB_FILE_ATTRIBUTE_VIRTUAL 0x00010000
1568  uint32_t attributes;
1569 
1570 #define WIMLIB_REPARSE_TAG_RESERVED_ZERO 0x00000000
1571 #define WIMLIB_REPARSE_TAG_RESERVED_ONE 0x00000001
1572 #define WIMLIB_REPARSE_TAG_MOUNT_POINT 0xA0000003
1573 #define WIMLIB_REPARSE_TAG_HSM 0xC0000004
1574 #define WIMLIB_REPARSE_TAG_HSM2 0x80000006
1575 #define WIMLIB_REPARSE_TAG_DRIVER_EXTENDER 0x80000005
1576 #define WIMLIB_REPARSE_TAG_SIS 0x80000007
1577 #define WIMLIB_REPARSE_TAG_DFS 0x8000000A
1578 #define WIMLIB_REPARSE_TAG_DFSR 0x80000012
1579 #define WIMLIB_REPARSE_TAG_FILTER_MANAGER 0x8000000B
1580 #define WIMLIB_REPARSE_TAG_WOF 0x80000017
1581 #define WIMLIB_REPARSE_TAG_SYMLINK 0xA000000C
1586  uint32_t reparse_tag;
1587 
1592  uint32_t num_links;
1593 
1596 
1605 
1608 
1611 
1614 
1618  uint32_t unix_uid;
1619 
1623  uint32_t unix_gid;
1624 
1630  uint32_t unix_mode;
1631 
1636  uint32_t unix_rdev;
1637 
1638  /* The object ID of this file, if any. Only valid if
1639  * object_id.object_id is not all zeroes. */
1640  struct wimlib_object_id object_id;
1641 
1645 
1649 
1653 
1654  int32_t reserved2;
1655 
1656  uint64_t reserved[4];
1657 
1672  struct wimlib_stream_entry streams[];
1673 };
1674 
1679 typedef int (*wimlib_iterate_dir_tree_callback_t)(const struct wimlib_dir_entry *dentry,
1680  void *user_ctx);
1681 
1687  void *user_ctx);
1688 
1691 #define WIMLIB_ITERATE_DIR_TREE_FLAG_RECURSIVE 0x00000001
1692 
1695 #define WIMLIB_ITERATE_DIR_TREE_FLAG_CHILDREN 0x00000002
1696 
1702 #define WIMLIB_ITERATE_DIR_TREE_FLAG_RESOURCES_NEEDED 0x00000004
1703 
1704 
1718 #define WIMLIB_ADD_FLAG_NTFS 0x00000001
1719 
1722 #define WIMLIB_ADD_FLAG_DEREFERENCE 0x00000002
1723 
1727 #define WIMLIB_ADD_FLAG_VERBOSE 0x00000004
1728 
1737 #define WIMLIB_ADD_FLAG_BOOT 0x00000008
1738 
1744 #define WIMLIB_ADD_FLAG_UNIX_DATA 0x00000010
1745 
1748 #define WIMLIB_ADD_FLAG_NO_ACLS 0x00000020
1749 
1755 #define WIMLIB_ADD_FLAG_STRICT_ACLS 0x00000040
1756 
1761 #define WIMLIB_ADD_FLAG_EXCLUDE_VERBOSE 0x00000080
1762 
1770 #define WIMLIB_ADD_FLAG_RPFIX 0x00000100
1771 
1773 #define WIMLIB_ADD_FLAG_NORPFIX 0x00000200
1774 
1779 #define WIMLIB_ADD_FLAG_NO_UNSUPPORTED_EXCLUDE 0x00000400
1780 
1796 #define WIMLIB_ADD_FLAG_WINCONFIG 0x00000800
1797 
1826 #define WIMLIB_ADD_FLAG_WIMBOOT 0x00001000
1827 
1834 #define WIMLIB_ADD_FLAG_NO_REPLACE 0x00002000
1835 
1843 #define WIMLIB_ADD_FLAG_TEST_FILE_EXCLUSION 0x00004000
1844 
1855 #define WIMLIB_ADD_FLAG_SNAPSHOT 0x00008000
1856 
1865 #define WIMLIB_ADD_FLAG_FILE_PATHS_UNNEEDED 0x00010000
1866 
1872 #define WIMLIB_DELETE_FLAG_FORCE 0x00000001
1873 
1876 #define WIMLIB_DELETE_FLAG_RECURSIVE 0x00000002
1877 
1888 #define WIMLIB_EXPORT_FLAG_BOOT 0x00000001
1889 
1893 #define WIMLIB_EXPORT_FLAG_NO_NAMES 0x00000002
1894 
1896 #define WIMLIB_EXPORT_FLAG_NO_DESCRIPTIONS 0x00000004
1897 
1901 #define WIMLIB_EXPORT_FLAG_GIFT 0x00000008
1902 
1918 #define WIMLIB_EXPORT_FLAG_WIMBOOT 0x00000010
1919 
1933 #define WIMLIB_EXTRACT_FLAG_NTFS 0x00000001
1934 
1937 #define WIMLIB_EXTRACT_FLAG_RECOVER_DATA 0x00000002
1938 
1941 #define WIMLIB_EXTRACT_FLAG_UNIX_DATA 0x00000020
1942 
1945 #define WIMLIB_EXTRACT_FLAG_NO_ACLS 0x00000040
1946 
1956 #define WIMLIB_EXTRACT_FLAG_STRICT_ACLS 0x00000080
1957 
1966 #define WIMLIB_EXTRACT_FLAG_RPFIX 0x00000100
1967 
1971 #define WIMLIB_EXTRACT_FLAG_NORPFIX 0x00000200
1972 
1975 #define WIMLIB_EXTRACT_FLAG_TO_STDOUT 0x00000400
1976 
1986 #define WIMLIB_EXTRACT_FLAG_REPLACE_INVALID_FILENAMES 0x00000800
1987 
1996 #define WIMLIB_EXTRACT_FLAG_ALL_CASE_CONFLICTS 0x00001000
1997 
2001 #define WIMLIB_EXTRACT_FLAG_STRICT_TIMESTAMPS 0x00002000
2002 
2005 #define WIMLIB_EXTRACT_FLAG_STRICT_SHORT_NAMES 0x00004000
2006 
2011 #define WIMLIB_EXTRACT_FLAG_STRICT_SYMLINKS 0x00008000
2012 
2026 #define WIMLIB_EXTRACT_FLAG_GLOB_PATHS 0x00040000
2027 
2031 #define WIMLIB_EXTRACT_FLAG_STRICT_GLOB 0x00080000
2032 
2038 #define WIMLIB_EXTRACT_FLAG_NO_ATTRIBUTES 0x00100000
2039 
2046 #define WIMLIB_EXTRACT_FLAG_NO_PRESERVE_DIR_STRUCTURE 0x00200000
2047 
2054 #define WIMLIB_EXTRACT_FLAG_WIMBOOT 0x00400000
2055 
2064 #define WIMLIB_EXTRACT_FLAG_COMPACT_XPRESS4K 0x01000000
2065 
2068 #define WIMLIB_EXTRACT_FLAG_COMPACT_XPRESS8K 0x02000000
2069 
2072 #define WIMLIB_EXTRACT_FLAG_COMPACT_XPRESS16K 0x04000000
2073 
2076 #define WIMLIB_EXTRACT_FLAG_COMPACT_LZX 0x08000000
2077 
2083 #define WIMLIB_MOUNT_FLAG_READWRITE 0x00000001
2084 
2086 #define WIMLIB_MOUNT_FLAG_DEBUG 0x00000002
2087 
2089 #define WIMLIB_MOUNT_FLAG_STREAM_INTERFACE_NONE 0x00000004
2090 
2094 #define WIMLIB_MOUNT_FLAG_STREAM_INTERFACE_XATTR 0x00000008
2095 
2098 #define WIMLIB_MOUNT_FLAG_STREAM_INTERFACE_WINDOWS 0x00000010
2099 
2101 #define WIMLIB_MOUNT_FLAG_UNIX_DATA 0x00000020
2102 
2105 #define WIMLIB_MOUNT_FLAG_ALLOW_OTHER 0x00000040
2106 
2117 #define WIMLIB_OPEN_FLAG_CHECK_INTEGRITY 0x00000001
2118 
2122 #define WIMLIB_OPEN_FLAG_ERROR_IF_SPLIT 0x00000002
2123 
2132 #define WIMLIB_OPEN_FLAG_WRITE_ACCESS 0x00000004
2133 
2140 #define WIMLIB_UNMOUNT_FLAG_CHECK_INTEGRITY 0x00000001
2141 
2144 #define WIMLIB_UNMOUNT_FLAG_COMMIT 0x00000002
2145 
2148 #define WIMLIB_UNMOUNT_FLAG_REBUILD 0x00000004
2149 
2152 #define WIMLIB_UNMOUNT_FLAG_RECOMPRESS 0x00000008
2153 
2162 #define WIMLIB_UNMOUNT_FLAG_FORCE 0x00000010
2163 
2168 #define WIMLIB_UNMOUNT_FLAG_NEW_IMAGE 0x00000020
2169 
2176 #define WIMLIB_UPDATE_FLAG_SEND_PROGRESS 0x00000001
2177 
2190 #define WIMLIB_WRITE_FLAG_CHECK_INTEGRITY 0x00000001
2191 
2197 #define WIMLIB_WRITE_FLAG_NO_CHECK_INTEGRITY 0x00000002
2198 
2211 #define WIMLIB_WRITE_FLAG_PIPABLE 0x00000004
2212 
2217 #define WIMLIB_WRITE_FLAG_NOT_PIPABLE 0x00000008
2218 
2244 #define WIMLIB_WRITE_FLAG_RECOMPRESS 0x00000010
2245 
2259 #define WIMLIB_WRITE_FLAG_FSYNC 0x00000020
2260 
2273 #define WIMLIB_WRITE_FLAG_REBUILD 0x00000040
2274 
2284 #define WIMLIB_WRITE_FLAG_SOFT_DELETE 0x00000080
2285 
2295 #define WIMLIB_WRITE_FLAG_IGNORE_READONLY_FLAG 0x00000100
2296 
2303 #define WIMLIB_WRITE_FLAG_SKIP_EXTERNAL_WIMS 0x00000200
2304 
2306 #define WIMLIB_WRITE_FLAG_STREAMS_OK 0x00000400
2307 
2314 #define WIMLIB_WRITE_FLAG_RETAIN_GUID 0x00000800
2315 
2351 #define WIMLIB_WRITE_FLAG_SOLID 0x00001000
2352 
2358 #define WIMLIB_WRITE_FLAG_SEND_DONE_WITH_FILE_MESSAGES 0x00002000
2359 
2365 #define WIMLIB_WRITE_FLAG_NO_SOLID_SORT 0x00004000
2366 
2383 #define WIMLIB_WRITE_FLAG_UNSAFE_COMPACT 0x00008000
2384 
2390 #define WIMLIB_INIT_FLAG_ASSUME_UTF8 0x00000001
2391 
2400 #define WIMLIB_INIT_FLAG_DONT_ACQUIRE_PRIVILEGES 0x00000002
2401 
2407 #define WIMLIB_INIT_FLAG_STRICT_CAPTURE_PRIVILEGES 0x00000004
2408 
2414 #define WIMLIB_INIT_FLAG_STRICT_APPLY_PRIVILEGES 0x00000008
2415 
2418 #define WIMLIB_INIT_FLAG_DEFAULT_CASE_SENSITIVE 0x00000010
2419 
2422 #define WIMLIB_INIT_FLAG_DEFAULT_CASE_INSENSITIVE 0x00000020
2423 
2430 #define WIMLIB_REF_FLAG_GLOB_ENABLE 0x00000001
2431 
2439 #define WIMLIB_REF_FLAG_GLOB_ERR_ON_NOMATCH 0x00000002
2440 
2449 
2452 
2455 };
2456 
2461 
2465 
2469 
2472 };
2473 
2476 
2479 
2482 };
2483 
2486 
2489 
2492 
2495 };
2496 
2499 
2500  enum wimlib_update_op op;
2501 
2502  union {
2503  struct wimlib_add_command add;
2504  struct wimlib_delete_command delete_; /* Underscore is for C++
2505  compatibility. */
2507  };
2508 };
2509 
2602 };
2603 
2604 
2606 #define WIMLIB_NO_IMAGE 0
2607 
2609 #define WIMLIB_ALL_IMAGES (-1)
2610 
2641 extern int
2643  const wimlib_tchar *name,
2644  int *new_idx_ret);
2645 
2697 extern int
2699  const wimlib_tchar *source,
2700  const wimlib_tchar *name,
2701  const wimlib_tchar *config_file,
2702  int add_flags);
2703 
2714 extern int
2716  const struct wimlib_capture_source *sources,
2717  size_t num_sources,
2718  const wimlib_tchar *name,
2719  const wimlib_tchar *config_file,
2720  int add_flags);
2721 
2731 extern int
2732 wimlib_add_tree(WIMStruct *wim, int image,
2733  const wimlib_tchar *fs_source_path,
2734  const wimlib_tchar *wim_target_path, int add_flags);
2735 
2764 extern int
2766 
2795 extern int
2797 
2806 extern int
2808  const wimlib_tchar *path, int delete_flags);
2809 
2878 extern int
2879 wimlib_export_image(WIMStruct *src_wim, int src_image,
2880  WIMStruct *dest_wim,
2881  const wimlib_tchar *dest_name,
2882  const wimlib_tchar *dest_description,
2883  int export_flags);
2884 
2997 extern int
2999  const wimlib_tchar *target, int extract_flags);
3000 
3039 extern int
3041  const wimlib_tchar *image_num_or_name,
3042  const wimlib_tchar *target, int extract_flags);
3043 
3053 extern int
3055  const wimlib_tchar *image_num_or_name,
3056  const wimlib_tchar *target,
3057  int extract_flags,
3058  wimlib_progress_func_t progfunc,
3059  void *progctx);
3060 
3080 extern int
3082  const wimlib_tchar *target,
3083  const wimlib_tchar *path_list_file,
3084  int extract_flags);
3085 
3155 extern int
3157  int image,
3158  const wimlib_tchar *target,
3159  const wimlib_tchar * const *paths,
3160  size_t num_paths,
3161  int extract_flags);
3162 
3177 extern int
3179 
3192 extern void
3194 
3208 extern const wimlib_tchar *
3210 
3224 extern const wimlib_tchar *
3226 
3233 extern const wimlib_tchar *
3235 
3244 extern const wimlib_tchar *
3245 wimlib_get_image_name(const WIMStruct *wim, int image);
3246 
3275 extern const wimlib_tchar *
3276 wimlib_get_image_property(const WIMStruct *wim, int image,
3277  const wimlib_tchar *property_name);
3278 
3290 extern uint32_t
3292 
3300 extern const wimlib_tchar *
3302 
3317 extern int
3319 
3347 extern int
3348 wimlib_get_xml_data(WIMStruct *wim, void **buf_ret, size_t *bufsize_ret);
3349 
3368 extern int
3369 wimlib_global_init(int init_flags);
3370 
3377 extern void
3379 
3396 extern bool
3398 
3443 extern int
3444 wimlib_iterate_dir_tree(WIMStruct *wim, int image, const wimlib_tchar *path,
3445  int flags,
3446  wimlib_iterate_dir_tree_callback_t cb, void *user_ctx);
3447 
3477 extern int
3480  void *user_ctx);
3481 
3518 extern int
3519 wimlib_join(const wimlib_tchar * const *swms,
3520  unsigned num_swms,
3521  const wimlib_tchar *output_path,
3522  int swm_open_flags,
3523  int wim_write_flags);
3524 
3536 extern int
3538  unsigned num_swms,
3539  const wimlib_tchar *output_path,
3540  int swm_open_flags,
3541  int wim_write_flags,
3542  wimlib_progress_func_t progfunc,
3543  void *progctx);
3544 
3545 
3621 extern int
3623  int image,
3624  const wimlib_tchar *dir,
3625  int mount_flags,
3626  const wimlib_tchar *staging_dir);
3627 
3697 extern int
3699  int open_flags,
3700  WIMStruct **wim_ret);
3701 
3713 extern int
3715  int open_flags,
3716  WIMStruct **wim_ret,
3717  wimlib_progress_func_t progfunc,
3718  void *progctx);
3719 
3779 extern int
3780 wimlib_overwrite(WIMStruct *wim, int write_flags, unsigned num_threads);
3781 
3802 extern void
3804 
3810 extern void
3812 
3854 extern int
3856  const wimlib_tchar * const *resource_wimfiles_or_globs,
3857  unsigned count,
3858  int ref_flags,
3859  int open_flags);
3860 
3881 extern int
3883  unsigned num_resource_wims, int ref_flags);
3884 
3947 extern int
3949  WIMStruct *template_wim, int template_image,
3950  int flags);
3951 
3967 extern void
3969  wimlib_progress_func_t progfunc,
3970  void *progctx);
3971 
3981 extern int
3983  const wimlib_tchar *source_path, const wimlib_tchar *dest_path);
3984 
4015 extern int
4017  const wimlib_tchar *image_name_or_num);
4018 
4033 extern int
4035 
4050 extern int
4052 
4061 extern int
4063  const wimlib_tchar *description);
4064 
4072 extern int
4073 wimlib_set_image_flags(WIMStruct *wim, int image, const wimlib_tchar *flags);
4074 
4081 extern int
4082 wimlib_set_image_name(WIMStruct *wim, int image, const wimlib_tchar *name);
4083 
4121 extern int
4123  const wimlib_tchar *property_name,
4124  const wimlib_tchar *property_value);
4125 
4154 extern int
4155 wimlib_set_memory_allocator(void *(*malloc_func)(size_t),
4156  void (*free_func)(void *),
4157  void *(*realloc_func)(void *, size_t));
4158 
4184 extern int
4185 wimlib_set_output_chunk_size(WIMStruct *wim, uint32_t chunk_size);
4186 
4193 extern int
4195 
4215 extern int
4217  enum wimlib_compression_type ctype);
4218 
4225 extern int
4227  enum wimlib_compression_type ctype);
4228 
4248 extern int
4249 wimlib_set_print_errors(bool show_messages);
4250 
4274 extern int
4276  int which);
4277 
4318 extern int
4320  const wimlib_tchar *swm_name,
4321  uint64_t part_size,
4322  int write_flags);
4323 
4361 extern int
4362 wimlib_verify_wim(WIMStruct *wim, int verify_flags);
4363 
4397 extern int
4398 wimlib_unmount_image(const wimlib_tchar *dir, int unmount_flags);
4399 
4408 extern int
4410  int unmount_flags,
4411  wimlib_progress_func_t progfunc,
4412  void *progctx);
4413 
4504 extern int
4506  int image,
4507  const struct wimlib_update_command *cmds,
4508  size_t num_cmds,
4509  int update_flags);
4510 
4572 extern int
4574  const wimlib_tchar *path,
4575  int image,
4576  int write_flags,
4577  unsigned num_threads);
4578 
4599 extern int
4601  int fd,
4602  int image,
4603  int write_flags,
4604  unsigned num_threads);
4605 
4623 struct wimlib_compressor;
4624 
4626 struct wimlib_decompressor;
4627 
4657 extern int
4658 wimlib_set_default_compression_level(int ctype, unsigned int compression_level);
4659 
4668 extern uint64_t
4670  size_t max_block_size,
4671  unsigned int compression_level);
4672 
4673 #define WIMLIB_COMPRESSOR_FLAG_DESTRUCTIVE 0x80000000
4674 
4743 extern int
4745  size_t max_block_size,
4746  unsigned int compression_level,
4747  struct wimlib_compressor **compressor_ret);
4748 
4769 extern size_t
4770 wimlib_compress(const void *uncompressed_data, size_t uncompressed_size,
4771  void *compressed_data, size_t compressed_size_avail,
4772  struct wimlib_compressor *compressor);
4773 
4780 extern void
4781 wimlib_free_compressor(struct wimlib_compressor *compressor);
4782 
4816 extern int
4818  size_t max_block_size,
4819  struct wimlib_decompressor **decompressor_ret);
4820 
4848 extern int
4849 wimlib_decompress(const void *compressed_data, size_t compressed_size,
4850  void *uncompressed_data, size_t uncompressed_size,
4851  struct wimlib_decompressor *decompressor);
4852 
4859 extern void
4860 wimlib_free_decompressor(struct wimlib_decompressor *decompressor);
4861 
4862 
4868 #ifdef __cplusplus
4869 }
4870 #endif
4871 
4872 #endif /* _WIMLIB_H */
int wimlib_create_compressor(enum wimlib_compression_type ctype, size_t max_block_size, unsigned int compression_level, struct wimlib_compressor **compressor_ret)
Allocate a compressor for the specified compression type using the specified parameters.
int wimlib_create_decompressor(enum wimlib_compression_type ctype, size_t max_block_size, struct wimlib_decompressor **decompressor_ret)
Allocate a decompressor for the specified compression type.
int wimlib_set_default_compression_level(int ctype, unsigned int compression_level)
Set the default compression level for the specified compression type.
int wimlib_decompress(const void *compressed_data, size_t compressed_size, void *uncompressed_data, size_t uncompressed_size, struct wimlib_decompressor *decompressor)
Decompress a buffer of data.
void wimlib_free_compressor(struct wimlib_compressor *compressor)
Free a compressor previously allocated with wimlib_create_compressor().
uint64_t wimlib_get_compressor_needed_memory(enum wimlib_compression_type ctype, size_t max_block_size, unsigned int compression_level)
Return the approximate number of bytes needed to allocate a compressor with wimlib_create_compressor(...
void wimlib_free_decompressor(struct wimlib_decompressor *decompressor)
Free a decompressor previously allocated with wimlib_create_decompressor().
size_t wimlib_compress(const void *uncompressed_data, size_t uncompressed_size, void *compressed_data, size_t compressed_size_avail, struct wimlib_compressor *compressor)
Compress a buffer of data.
int wimlib_open_wim(const wimlib_tchar *wim_file, int open_flags, WIMStruct **wim_ret)
Open a WIM file and create a WIMStruct for it.
int wimlib_open_wim_with_progress(const wimlib_tchar *wim_file, int open_flags, WIMStruct **wim_ret, wimlib_progress_func_t progfunc, void *progctx)
Same as wimlib_open_wim(), but allows specifying a progress function and progress context.
int wimlib_create_new_wim(enum wimlib_compression_type ctype, WIMStruct **wim_ret)
Create a WIMStruct which initially contains no images and is not backed by an on-disk file.
int wimlib_extract_image_from_pipe(int pipe_fd, const wimlib_tchar *image_num_or_name, const wimlib_tchar *target, int extract_flags)
Extract one image from a pipe on which a pipable WIM is being sent.
int wimlib_extract_paths(WIMStruct *wim, int image, const wimlib_tchar *target, const wimlib_tchar *const *paths, size_t num_paths, int extract_flags)
Extract zero or more paths (files or directory trees) from the specified WIM image.
int wimlib_extract_image(WIMStruct *wim, int image, const wimlib_tchar *target, int extract_flags)
Extract an image, or all images, from a WIMStruct.
int wimlib_extract_pathlist(WIMStruct *wim, int image, const wimlib_tchar *target, const wimlib_tchar *path_list_file, int extract_flags)
Similar to wimlib_extract_paths(), but the paths to extract from the WIM image are specified in the A...
int wimlib_extract_image_from_pipe_with_progress(int pipe_fd, const wimlib_tchar *image_num_or_name, const wimlib_tchar *target, int extract_flags, wimlib_progress_func_t progfunc, void *progctx)
Same as wimlib_extract_image_from_pipe(), but allows specifying a progress function.
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...
int wimlib_set_error_file(FILE *fp)
Set the file to which the library will print error and warning messages.
char wimlib_tchar
See Character encoding.
Definition: wimlib.h:459
#define WIMLIB_GUID_LEN
Length of a Globally Unique Identifier (GUID), in bytes.
Definition: wimlib.h:485
int wimlib_verify_wim(WIMStruct *wim, int verify_flags)
Perform verification checks on a WIM file.
void wimlib_free(WIMStruct *wim)
Release a reference to a WIMStruct.
int wimlib_set_print_errors(bool show_messages)
Set whether wimlib can print error and warning messages to the error file, which defaults to standard...
void wimlib_register_progress_function(WIMStruct *wim, wimlib_progress_func_t progfunc, void *progctx)
Register a progress function with a WIMStruct.
uint32_t wimlib_get_version(void)
Return the version of wimlib as a 32-bit number whose top 12 bits contain the major version,...
struct WIMStruct WIMStruct
Opaque structure that represents a WIM, possibly backed by an on-disk file.
Definition: wimlib.h:451
int wimlib_set_memory_allocator(void *(*malloc_func)(size_t), void(*free_func)(void *), void *(*realloc_func)(void *, size_t))
Set the functions that wimlib uses to allocate and free memory.
#define wimlib_timespec
Definition: wimlib.h:443
int wimlib_set_error_file_by_name(const wimlib_tchar *path)
Set the path to the file to which the library will print error and warning messages.
int wimlib_global_init(int init_flags)
Initialization function for wimlib.
const wimlib_tchar * wimlib_get_compression_type_string(enum wimlib_compression_type ctype)
Convert a wimlib_compression_type value into a string.
wimlib_error_code
Possible values of the error code returned by many functions in wimlib.
Definition: wimlib.h:2520
void wimlib_global_cleanup(void)
Cleanup function for wimlib.
const wimlib_tchar * wimlib_get_error_string(enum wimlib_error_code code)
Convert a wimlib error code into a string describing it.
wimlib_compression_type
Specifies a compression type.
Definition: wimlib.h:497
@ WIMLIB_ERR_INVALID_IMAGE
Definition: wimlib.h:2534
@ WIMLIB_ERR_SET_XATTR
Definition: wimlib.h:2601
@ WIMLIB_ERR_UNABLE_TO_READ_CAPTURE_CONFIG
Definition: wimlib.h:2593
@ WIMLIB_ERR_READLINK
Definition: wimlib.h:2564
@ WIMLIB_ERR_PATH_DOES_NOT_EXIST
Definition: wimlib.h:2562
@ WIMLIB_ERR_DECOMPRESSION
Definition: wimlib.h:2523
@ WIMLIB_ERR_XML
Definition: wimlib.h:2583
@ WIMLIB_ERR_SPLIT_INVALID
Definition: wimlib.h:2574
@ WIMLIB_ERR_INVALID_XATTR
Definition: wimlib.h:2600
@ WIMLIB_ERR_INVALID_INTEGRITY_TABLE
Definition: wimlib.h:2535
@ WIMLIB_ERR_SNAPSHOT_FAILURE
Definition: wimlib.h:2599
@ WIMLIB_ERR_READ
Definition: wimlib.h:2563
@ WIMLIB_ERR_IMAGE_HAS_MULTIPLE_REFERENCES
Definition: wimlib.h:2596
@ WIMLIB_ERR_REPARSE_POINT_FIXUP_FAILED
Definition: wimlib.h:2566
@ WIMLIB_ERR_INVALID_PARAM
Definition: wimlib.h:2539
@ WIMLIB_ERR_RESOURCE_NOT_FOUND
Definition: wimlib.h:2567
@ WIMLIB_ERR_MOUNTED_IMAGE_IS_BUSY
Definition: wimlib.h:2589
@ WIMLIB_ERR_INVALID_UTF8_STRING
Definition: wimlib.h:2545
@ WIMLIB_ERR_UNSUPPORTED_FILE
Definition: wimlib.h:2580
@ WIMLIB_ERR_INSUFFICIENT_PRIVILEGES
Definition: wimlib.h:2528
@ WIMLIB_ERR_SET_TIMESTAMPS
Definition: wimlib.h:2573
@ WIMLIB_ERR_OPENDIR
Definition: wimlib.h:2561
@ WIMLIB_ERR_NTFS_3G
Definition: wimlib.h:2559
@ WIMLIB_ERR_IMAGE_NAME_COLLISION
Definition: wimlib.h:2527
@ WIMLIB_ERR_RENAME
Definition: wimlib.h:2565
@ WIMLIB_ERR_NOT_A_WIM_FILE
Definition: wimlib.h:2556
@ WIMLIB_ERR_UNKNOWN_PROGRESS_STATUS
Definition: wimlib.h:2587
@ WIMLIB_ERR_NO_FILENAME
Definition: wimlib.h:2558
@ WIMLIB_ERR_WRITE
Definition: wimlib.h:2582
@ WIMLIB_ERR_INVALID_LOOKUP_TABLE_ENTRY
Definition: wimlib.h:2536
@ WIMLIB_ERR_NOT_A_REGULAR_FILE
Definition: wimlib.h:2555
@ WIMLIB_ERR_STAT
Definition: wimlib.h:2575
@ WIMLIB_ERR_NOT_PIPABLE
Definition: wimlib.h:2557
@ WIMLIB_ERR_IS_DIRECTORY
Definition: wimlib.h:2546
@ WIMLIB_ERR_METADATA_NOT_FOUND
Definition: wimlib.h:2549
@ WIMLIB_ERR_ABORTED_BY_PROGRESS
Definition: wimlib.h:2586
@ WIMLIB_ERR_WIMBOOT
Definition: wimlib.h:2585
@ WIMLIB_ERR_WIM_IS_INCOMPLETE
Definition: wimlib.h:2594
@ WIMLIB_ERR_UNKNOWN_VERSION
Definition: wimlib.h:2578
@ WIMLIB_ERR_INVALID_METADATA_RESOURCE
Definition: wimlib.h:2537
@ WIMLIB_ERR_SET_SECURITY
Definition: wimlib.h:2571
@ WIMLIB_ERR_OPEN
Definition: wimlib.h:2560
@ WIMLIB_ERR_IS_SPLIT_WIM
Definition: wimlib.h:2547
@ WIMLIB_ERR_SET_SHORT_NAME
Definition: wimlib.h:2572
@ WIMLIB_ERR_NOMEM
Definition: wimlib.h:2552
@ WIMLIB_ERR_INVALID_OVERLAY
Definition: wimlib.h:2538
@ WIMLIB_ERR_MKNOD
Definition: wimlib.h:2588
@ WIMLIB_ERR_INVALID_RESOURCE_HASH
Definition: wimlib.h:2543
@ WIMLIB_ERR_SET_REPARSE_DATA
Definition: wimlib.h:2570
@ WIMLIB_ERR_MKDIR
Definition: wimlib.h:2550
@ WIMLIB_ERR_FUSE
Definition: wimlib.h:2524
@ WIMLIB_ERR_INVALID_REPARSE_DATA
Definition: wimlib.h:2542
@ WIMLIB_ERR_DUPLICATE_EXPORTED_IMAGE
Definition: wimlib.h:2597
@ WIMLIB_ERR_SUCCESS
Definition: wimlib.h:2521
@ WIMLIB_ERR_NOTEMPTY
Definition: wimlib.h:2554
@ WIMLIB_ERR_UNSUPPORTED
Definition: wimlib.h:2579
@ WIMLIB_ERR_INVALID_CAPTURE_CONFIG
Definition: wimlib.h:2530
@ WIMLIB_ERR_INVALID_CHUNK_SIZE
Definition: wimlib.h:2531
@ WIMLIB_ERR_LINK
Definition: wimlib.h:2548
@ WIMLIB_ERR_INVALID_PIPABLE_WIM
Definition: wimlib.h:2541
@ WIMLIB_ERR_IMAGE_COUNT
Definition: wimlib.h:2526
@ WIMLIB_ERR_INVALID_HEADER
Definition: wimlib.h:2533
@ WIMLIB_ERR_UNEXPECTED_END_OF_FILE
Definition: wimlib.h:2576
@ WIMLIB_ERR_GLOB_HAD_NO_MATCHES
Definition: wimlib.h:2525
@ WIMLIB_ERR_NOTDIR
Definition: wimlib.h:2553
@ WIMLIB_ERR_UNICODE_STRING_NOT_REPRESENTABLE
Definition: wimlib.h:2577
@ WIMLIB_ERR_FVE_LOCKED_VOLUME
Definition: wimlib.h:2592
@ WIMLIB_ERR_COMPACTION_NOT_POSSIBLE
Definition: wimlib.h:2595
@ WIMLIB_ERR_SET_ATTRIBUTES
Definition: wimlib.h:2569
@ WIMLIB_ERR_INVALID_UTF16_STRING
Definition: wimlib.h:2544
@ WIMLIB_ERR_NOT_PERMITTED_TO_UNMOUNT
Definition: wimlib.h:2591
@ WIMLIB_ERR_INTEGRITY
Definition: wimlib.h:2529
@ WIMLIB_ERR_WIM_IS_ENCRYPTED
Definition: wimlib.h:2584
@ WIMLIB_ERR_RESOURCE_ORDER
Definition: wimlib.h:2568
@ WIMLIB_ERR_INVALID_COMPRESSION_TYPE
Definition: wimlib.h:2532
@ WIMLIB_ERR_ALREADY_LOCKED
Definition: wimlib.h:2522
@ WIMLIB_ERR_MQUEUE
Definition: wimlib.h:2551
@ WIMLIB_ERR_INVALID_PART_NUMBER
Definition: wimlib.h:2540
@ WIMLIB_ERR_WIM_IS_READONLY
Definition: wimlib.h:2581
@ WIMLIB_ERR_NOT_A_MOUNTPOINT
Definition: wimlib.h:2590
@ WIMLIB_ERR_CONCURRENT_MODIFICATION_DETECTED
Definition: wimlib.h:2598
@ WIMLIB_COMPRESSION_TYPE_NONE
No compression.
Definition: wimlib.h:505
@ WIMLIB_COMPRESSION_TYPE_LZMS
The LZMS compression format.
Definition: wimlib.h:570
@ WIMLIB_COMPRESSION_TYPE_LZX
The LZX compression format.
Definition: wimlib.h:547
@ WIMLIB_COMPRESSION_TYPE_XPRESS
The XPRESS compression format.
Definition: wimlib.h:525
int wimlib_delete_path(WIMStruct *wim, int image, const wimlib_tchar *path, int delete_flags)
Delete the path from the specified image of the wim.
int wimlib_update_image(WIMStruct *wim, int image, const struct wimlib_update_command *cmds, size_t num_cmds, int update_flags)
Update a WIM image by adding, deleting, and/or renaming files or directories.
int wimlib_add_tree(WIMStruct *wim, int image, const wimlib_tchar *fs_source_path, const wimlib_tchar *wim_target_path, int add_flags)
Add the file or directory tree at fs_source_path on the filesystem to the location wim_target_path wi...
int wimlib_add_empty_image(WIMStruct *wim, const wimlib_tchar *name, int *new_idx_ret)
Append an empty image to a WIMStruct.
int wimlib_reference_template_image(WIMStruct *wim, int new_image, WIMStruct *template_wim, int template_image, int flags)
Declare that a newly added image is mostly the same as a prior image, but captured at a later point i...
int wimlib_add_image_multisource(WIMStruct *wim, const struct wimlib_capture_source *sources, size_t num_sources, const wimlib_tchar *name, const wimlib_tchar *config_file, int add_flags)
This function is equivalent to wimlib_add_image() except it allows for multiple sources to be combine...
int wimlib_export_image(WIMStruct *src_wim, int src_image, WIMStruct *dest_wim, const wimlib_tchar *dest_name, const wimlib_tchar *dest_description, int export_flags)
Export an image, or all images, from a WIMStruct into another WIMStruct.
int wimlib_set_wim_info(WIMStruct *wim, const struct wimlib_wim_info *info, int which)
Set basic information about a WIM.
int wimlib_set_image_flags(WIMStruct *wim, int image, const wimlib_tchar *flags)
Change what is stored in the <FLAGS> element in the WIM XML document (usually something like "Core" o...
int wimlib_add_image(WIMStruct *wim, const wimlib_tchar *source, const wimlib_tchar *name, const wimlib_tchar *config_file, int add_flags)
Add an image to a WIMStruct from an on-disk directory tree or NTFS volume.
int wimlib_set_image_property(WIMStruct *wim, int image, const wimlib_tchar *property_name, const wimlib_tchar *property_value)
Since wimlib v1.8.3: add, modify, or remove a per-image property from the WIM's XML document.
int wimlib_delete_image(WIMStruct *wim, int image)
Delete an image, or all images, from a WIMStruct.
int wimlib_set_image_descripton(WIMStruct *wim, int image, const wimlib_tchar *description)
Change the description of a WIM image.
int wimlib_set_image_name(WIMStruct *wim, int image, const wimlib_tchar *name)
Change the name of a WIM image.
wimlib_update_op
The specific type of update to perform.
Definition: wimlib.h:2446
int wimlib_rename_path(WIMStruct *wim, int image, const wimlib_tchar *source_path, const wimlib_tchar *dest_path)
Rename the source_path to the dest_path in the specified image of the wim.
@ WIMLIB_UPDATE_OP_RENAME
Rename a file or directory tree in the image.
Definition: wimlib.h:2454
@ WIMLIB_UPDATE_OP_DELETE
Delete a file or directory tree from the image.
Definition: wimlib.h:2451
@ WIMLIB_UPDATE_OP_ADD
Add a new file or directory tree to the image.
Definition: wimlib.h:2448
int wimlib_unmount_image(const wimlib_tchar *dir, int unmount_flags)
Unmount a WIM image that was mounted using wimlib_mount_image().
int wimlib_unmount_image_with_progress(const wimlib_tchar *dir, int unmount_flags, wimlib_progress_func_t progfunc, void *progctx)
Same as wimlib_unmount_image(), but allows specifying a progress function.
int wimlib_mount_image(WIMStruct *wim, int image, const wimlib_tchar *dir, int mount_flags, const wimlib_tchar *staging_dir)
Mount an image from a WIM file on a directory read-only or read-write.
int wimlib_join_with_progress(const wimlib_tchar *const *swms, unsigned num_swms, const wimlib_tchar *output_path, int swm_open_flags, int wim_write_flags, wimlib_progress_func_t progfunc, void *progctx)
Same as wimlib_join(), but allows specifying a progress function.
int wimlib_reference_resources(WIMStruct *wim, WIMStruct **resource_wims, unsigned num_resource_wims, int ref_flags)
Similar to wimlib_reference_resource_files(), but operates at a lower level where the caller must ope...
int wimlib_reference_resource_files(WIMStruct *wim, const wimlib_tchar *const *resource_wimfiles_or_globs, unsigned count, int ref_flags, int open_flags)
Reference file data from other WIM files or split WIM parts.
int wimlib_split(WIMStruct *wim, const wimlib_tchar *swm_name, uint64_t part_size, int write_flags)
Split a WIM into multiple parts.
int wimlib_join(const wimlib_tchar *const *swms, unsigned num_swms, const wimlib_tchar *output_path, int swm_open_flags, int wim_write_flags)
Join a split WIM into a stand-alone (one-part) WIM.
wimlib_progress_status
Valid return values from user-provided progress functions (wimlib_progress_func_t).
Definition: wimlib.h:787
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:1253
wimlib_progress_msg
Possible values of the first parameter to the user-supplied wimlib_progress_func_t progress function.
Definition: wimlib.h:579
@ WIMLIB_PROGRESS_STATUS_CONTINUE
The operation should be continued.
Definition: wimlib.h:791
@ WIMLIB_PROGRESS_STATUS_ABORT
The operation should be aborted.
Definition: wimlib.h:795
@ 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:688
@ WIMLIB_PROGRESS_MSG_UNMOUNT_BEGIN
Starting to unmount an image.
Definition: wimlib.h:723
@ WIMLIB_PROGRESS_MSG_VERIFY_STREAMS
wimlib_verify_wim() is verifying file data integrity.
Definition: wimlib.h:742
@ WIMLIB_PROGRESS_MSG_EXTRACT_SPWM_PART_BEGIN
Starting to read a new part of a split pipable WIM over the pipe.
Definition: wimlib.h:609
@ WIMLIB_PROGRESS_MSG_EXTRACT_IMAGE_END
The image has been successfully extracted.
Definition: wimlib.h:622
@ WIMLIB_PROGRESS_MSG_REPLACE_FILE_IN_WIM
A file in the image is being replaced as a result of a wimlib_add_command without WIMLIB_ADD_FLAG_NO_...
Definition: wimlib.h:711
@ WIMLIB_PROGRESS_MSG_VERIFY_INTEGRITY
The contents of the WIM file are being checked against the integrity table.
Definition: wimlib.h:677
@ WIMLIB_PROGRESS_MSG_EXTRACT_STREAMS
File data is currently being extracted.
Definition: wimlib.h:605
@ WIMLIB_PROGRESS_MSG_END_VERIFY_IMAGE
wimlib_verify_wim() has finished verifying the metadata for an image.
Definition: wimlib.h:738
@ WIMLIB_PROGRESS_MSG_EXTRACT_TREE_BEGIN
One or more file or directory trees within a WIM image is about to be extracted.
Definition: wimlib.h:592
@ WIMLIB_PROGRESS_MSG_WRITE_METADATA_END
The per-image metadata has been written to the WIM file.
Definition: wimlib.h:663
@ 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:778
@ WIMLIB_PROGRESS_MSG_SPLIT_END_PART
A wimlib_split() operation is in progress, and a split part has been finished.
Definition: wimlib.h:692
@ WIMLIB_PROGRESS_MSG_WRITE_STREAMS
File data is currently being written to the WIM.
Definition: wimlib.h:654
@ WIMLIB_PROGRESS_MSG_RENAME
wimlib_overwrite() has successfully renamed the temporary file to the original WIM file,...
Definition: wimlib.h:670
@ 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:756
@ 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:719
@ WIMLIB_PROGRESS_MSG_BEGIN_VERIFY_IMAGE
wimlib_verify_wim() is starting to verify the metadata for an image.
Definition: wimlib.h:733
@ WIMLIB_PROGRESS_MSG_UPDATE_BEGIN_COMMAND
A WIM update command is about to be executed.
Definition: wimlib.h:698
@ WIMLIB_PROGRESS_MSG_EXTRACT_TREE_END
The files or directory trees have been successfully extracted.
Definition: wimlib.h:627
@ WIMLIB_PROGRESS_MSG_CALC_INTEGRITY
An integrity table is being calculated for the WIM being written.
Definition: wimlib.h:683
@ WIMLIB_PROGRESS_MSG_SCAN_DENTRY
A directory or file has been scanned.
Definition: wimlib.h:640
@ WIMLIB_PROGRESS_MSG_EXTRACT_METADATA
This message may be sent periodically (not necessarily for every file) while file and directory metad...
Definition: wimlib.h:617
@ WIMLIB_PROGRESS_MSG_DONE_WITH_FILE
wimlib has used a file's data for the last time (including all data streams, if it has multiple).
Definition: wimlib.h:729
@ WIMLIB_PROGRESS_MSG_UPDATE_END_COMMAND
A WIM update command has been executed.
Definition: wimlib.h:704
@ WIMLIB_PROGRESS_MSG_EXTRACT_FILE_STRUCTURE
This message may be sent periodically (not for every file) while files and directories are being crea...
Definition: wimlib.h:600
@ WIMLIB_PROGRESS_MSG_WRITE_METADATA_BEGIN
Per-image metadata is about to be written to the WIM file.
Definition: wimlib.h:658
@ WIMLIB_PROGRESS_MSG_EXTRACT_IMAGE_BEGIN
A WIM image is about to be extracted.
Definition: wimlib.h:585
@ WIMLIB_PROGRESS_MSG_SCAN_BEGIN
The directory or NTFS volume is about to be scanned for metadata.
Definition: wimlib.h:634
@ WIMLIB_PROGRESS_MSG_SCAN_END
The directory or NTFS volume has been successfully scanned.
Definition: wimlib.h:646
int wimlib_get_xml_data(WIMStruct *wim, void **buf_ret, size_t *bufsize_ret)
Read a WIM file's XML document into an in-memory buffer.
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.
const wimlib_tchar * wimlib_get_image_name(const WIMStruct *wim, int image)
Get the name of the specified image.
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...
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.
const wimlib_tchar * wimlib_get_image_description(const WIMStruct *wim, int image)
Get the description of the specified image.
int wimlib_resolve_image(WIMStruct *wim, const wimlib_tchar *image_name_or_num)
Translate a string specifying the name or number of an image in the WIM into the number of the image.
void wimlib_print_header(const WIMStruct *wim)
Print the header of the WIM file (intended for debugging only).
int(* wimlib_iterate_lookup_table_callback_t)(const struct wimlib_resource_entry *resource, void *user_ctx)
Type of a callback function to wimlib_iterate_lookup_table().
Definition: wimlib.h:1686
void wimlib_print_available_images(const WIMStruct *wim, int image)
(Deprecated) Print information about one image, or all images, contained in a WIM.
int wimlib_get_wim_info(WIMStruct *wim, struct wimlib_wim_info *info)
Get basic information about a WIM file.
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:1679
int wimlib_iterate_lookup_table(WIMStruct *wim, int flags, wimlib_iterate_lookup_table_callback_t cb, void *user_ctx)
Iterate through the blob lookup table of a WIMStruct.
int wimlib_iterate_dir_tree(WIMStruct *wim, int image, const wimlib_tchar *path, int flags, wimlib_iterate_dir_tree_callback_t cb, void *user_ctx)
Iterate through a file or directory tree in a WIM image.
int wimlib_overwrite(WIMStruct *wim, int write_flags, unsigned num_threads)
Commit a WIMStruct to disk, updating its backing file.
int wimlib_write(WIMStruct *wim, const wimlib_tchar *path, int image, int write_flags, unsigned num_threads)
Persist a WIMStruct to a new on-disk WIM file.
int wimlib_set_output_pack_chunk_size(WIMStruct *wim, uint32_t chunk_size)
Similar to wimlib_set_output_chunk_size(), but set the chunk size for writing solid resources.
int wimlib_write_to_fd(WIMStruct *wim, int fd, int image, int write_flags, unsigned num_threads)
Same as wimlib_write(), but write the WIM directly to a file descriptor, which need not be seekable i...
int wimlib_set_output_chunk_size(WIMStruct *wim, uint32_t chunk_size)
Set a WIMStruct's output compression chunk size.
int wimlib_set_output_compression_type(WIMStruct *wim, enum wimlib_compression_type ctype)
Set a WIMStruct's output compression type.
int wimlib_set_output_pack_compression_type(WIMStruct *wim, enum wimlib_compression_type ctype)
Similar to wimlib_set_output_compression_type(), but set the compression type for writing solid resou...
Data for a WIMLIB_UPDATE_OP_ADD operation.
Definition: wimlib.h:2458
int add_flags
Bitwise OR of WIMLIB_ADD_FLAG_* flags.
Definition: wimlib.h:2471
wimlib_tchar * fs_source_path
Filesystem path to the file or directory tree to add.
Definition: wimlib.h:2460
wimlib_tchar * config_file
Path to capture configuration file to use, or NULL if not specified.
Definition: wimlib.h:2468
wimlib_tchar * wim_target_path
Destination path in the image.
Definition: wimlib.h:2464
An array of these structures is passed to wimlib_add_image_multisource() to specify the sources from ...
Definition: wimlib.h:1263
wimlib_tchar * wim_target_path
Destination path in the image.
Definition: wimlib.h:1270
long reserved
Reserved; set to 0.
Definition: wimlib.h:1273
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:1266
Data for a WIMLIB_UPDATE_OP_DELETE operation.
Definition: wimlib.h:2475
wimlib_tchar * wim_path
The path to the file or directory within the image to delete.
Definition: wimlib.h:2478
int delete_flags
Bitwise OR of WIMLIB_DELETE_FLAG_* flags.
Definition: wimlib.h:2481
Structure passed to the wimlib_iterate_dir_tree() callback function.
Definition: wimlib.h:1524
size_t depth
Depth of this directory entry, where 0 is the root, 1 is the root's children, ...,...
Definition: wimlib.h:1539
struct wimlib_timespec last_access_time
Time this file was last accessed.
Definition: wimlib.h:1613
struct wimlib_object_id object_id
Definition: wimlib.h:1640
uint32_t unix_uid
The UNIX user ID of this file.
Definition: wimlib.h:1618
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:1648
uint32_t reparse_tag
If the file is a reparse point (FILE_ATTRIBUTE_REPARSE_POINT set in the attributes),...
Definition: wimlib.h:1586
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:1652
const char * security_descriptor
Pointer to the security descriptor for this file, in Windows SECURITY_DESCRIPTOR_RELATIVE format,...
Definition: wimlib.h:1544
uint32_t unix_rdev
The UNIX device ID (major and minor number) of this file.
Definition: wimlib.h:1636
uint64_t hard_link_group_id
A unique identifier for this file's inode.
Definition: wimlib.h:1604
uint64_t reserved[4]
Definition: wimlib.h:1656
uint32_t num_links
Number of links to this file's inode (hard links).
Definition: wimlib.h:1592
int32_t creation_time_high
High 32 bits of the seconds portion of the creation timestamp, filled in if wimlib_timespec....
Definition: wimlib.h:1644
struct wimlib_timespec last_write_time
Time this file was last written to.
Definition: wimlib.h:1610
const wimlib_tchar * filename
Name of the file, or NULL if this file is unnamed.
Definition: wimlib.h:1527
uint32_t attributes
File attributes, such as whether the file is a directory or not.
Definition: wimlib.h:1568
uint32_t num_named_streams
Number of named data streams this file has.
Definition: wimlib.h:1595
size_t security_descriptor_size
Size of the above security descriptor, in bytes.
Definition: wimlib.h:1547
struct wimlib_stream_entry streams[]
Variable-length array of streams that make up this file.
Definition: wimlib.h:1672
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:1531
const wimlib_tchar * full_path
Full path to this file within the image.
Definition: wimlib.h:1535
uint32_t unix_gid
The UNIX group ID of this file.
Definition: wimlib.h:1623
uint32_t unix_mode
The UNIX mode of this file.
Definition: wimlib.h:1630
struct wimlib_timespec creation_time
Time this file was created.
Definition: wimlib.h:1607
int32_t reserved2
Definition: wimlib.h:1654
Since wimlib v1.9.1: an object ID, which is an extra piece of metadata that may be associated with a ...
Definition: wimlib.h:1513
uint8_t birth_volume_id[WIMLIB_GUID_LEN]
Definition: wimlib.h:1515
uint8_t object_id[WIMLIB_GUID_LEN]
Definition: wimlib.h:1514
uint8_t birth_object_id[WIMLIB_GUID_LEN]
Definition: wimlib.h:1516
uint8_t domain_id[WIMLIB_GUID_LEN]
Definition: wimlib.h:1517
Valid on messages WIMLIB_PROGRESS_MSG_DONE_WITH_FILE.
Definition: wimlib.h:1150
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:1169
Valid on messages WIMLIB_PROGRESS_MSG_EXTRACT_SPWM_PART_BEGIN, WIMLIB_PROGRESS_MSG_EXTRACT_IMAGE_BEGI...
Definition: wimlib.h:950
uint32_t extract_flags
Extraction flags being used.
Definition: wimlib.h:957
uint64_t completed_bytes
The number of bytes of file data that have been extracted so far.
Definition: wimlib.h:980
uint64_t end_file_count
For WIMLIB_PROGRESS_MSG_EXTRACT_FILE_STRUCTURE and WIMLIB_PROGRESS_MSG_EXTRACT_METADATA messages,...
Definition: wimlib.h:1027
uint64_t current_file_count
For WIMLIB_PROGRESS_MSG_EXTRACT_FILE_STRUCTURE and WIMLIB_PROGRESS_MSG_EXTRACT_METADATA messages,...
Definition: wimlib.h:1009
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:966
uint32_t total_parts
Currently only used for WIMLIB_PROGRESS_MSG_EXTRACT_SPWM_PART_BEGIN.
Definition: wimlib.h:998
uint64_t total_bytes
The number of bytes of file data that will be extracted.
Definition: wimlib.h:976
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:962
uint64_t completed_streams
The number of file streams that have been extracted so far.
Definition: wimlib.h:990
uint32_t part_number
Currently only used for WIMLIB_PROGRESS_MSG_EXTRACT_SPWM_PART_BEGIN.
Definition: wimlib.h:994
const wimlib_tchar * target
Path to the directory or NTFS volume to which the files are being extracted.
Definition: wimlib.h:970
uint8_t guid[WIMLIB_GUID_LEN]
Currently only used for WIMLIB_PROGRESS_MSG_EXTRACT_SPWM_PART_BEGIN.
Definition: wimlib.h:1002
const wimlib_tchar * reserved
Reserved.
Definition: wimlib.h:973
uint32_t image
The 1-based index of the image from which files are being extracted.
Definition: wimlib.h:954
uint64_t total_streams
The number of file streams that will be extracted.
Definition: wimlib.h:986
Valid on messages WIMLIB_PROGRESS_MSG_HANDLE_ERROR.
Definition: wimlib.h:1216
bool will_ignore
Indicates whether the error will be ignored or not.
Definition: wimlib.h:1230
const wimlib_tchar * path
Path to the file for which the error occurred, or NULL if not relevant.
Definition: wimlib.h:1220
int error_code
The wimlib error code associated with the error.
Definition: wimlib.h:1223
Valid on messages WIMLIB_PROGRESS_MSG_VERIFY_INTEGRITY and WIMLIB_PROGRESS_MSG_CALC_INTEGRITY.
Definition: wimlib.h:1058
uint64_t completed_bytes
The number of bytes that have been checksummed so far.
Definition: wimlib.h:1066
uint32_t total_chunks
The number of individually checksummed "chunks" the integrity-checked region is divided into.
Definition: wimlib.h:1070
uint64_t total_bytes
The number of bytes in the WIM file that are covered by integrity checks.
Definition: wimlib.h:1062
uint32_t completed_chunks
The number of chunks that have been checksummed so far.
Definition: wimlib.h:1074
uint32_t chunk_size
The size of each individually checksummed "chunk" in the integrity-checked region.
Definition: wimlib.h:1078
const wimlib_tchar * filename
For WIMLIB_PROGRESS_MSG_VERIFY_INTEGRITY messages, this is the path to the WIM file being checked.
Definition: wimlib.h:1082
Valid on messages WIMLIB_PROGRESS_MSG_RENAME.
Definition: wimlib.h:1031
const wimlib_tchar * from
Name of the temporary file that the WIM was written to.
Definition: wimlib.h:1033
const wimlib_tchar * to
Name of the original WIM file to which the temporary file is being renamed.
Definition: wimlib.h:1037
Valid on messages WIMLIB_PROGRESS_MSG_REPLACE_FILE_IN_WIM
Definition: wimlib.h:1116
const wimlib_tchar * path_in_wim
Path to the file in the image that is being replaced
Definition: wimlib.h:1118
Valid on messages WIMLIB_PROGRESS_MSG_SCAN_BEGIN, WIMLIB_PROGRESS_MSG_SCAN_DENTRY,...
Definition: wimlib.h:862
const wimlib_tchar * wim_target_path
Target path in the image.
Definition: wimlib.h:909
uint64_t num_bytes_scanned
The number of bytes of file data detected so far, not counting excluded/unsupported files.
Definition: wimlib.h:928
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:874
uint64_t num_nondirs_scanned
The number of non-directories scanned so far, not counting excluded/unsupported files.
Definition: wimlib.h:924
uint64_t num_dirs_scanned
The number of directories scanned so far, not counting excluded/unsupported files.
Definition: wimlib.h:920
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:915
@ WIMLIB_SCAN_DENTRY_UNSUPPORTED
File is being excluded from capture due to being of an unsupported type.
Definition: wimlib.h:888
@ WIMLIB_SCAN_DENTRY_OK
File looks okay and will be captured.
Definition: wimlib.h:880
@ WIMLIB_SCAN_DENTRY_EXCLUDED
File is being excluded from capture due to the capture configuration.
Definition: wimlib.h:884
@ 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:902
@ WIMLIB_SCAN_DENTRY_FIXED_SYMLINK
The file is an absolute symbolic link or junction that points into the capture directory,...
Definition: wimlib.h:896
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:868
Valid on messages WIMLIB_PROGRESS_MSG_SPLIT_BEGIN_PART and WIMLIB_PROGRESS_MSG_SPLIT_END_PART.
Definition: wimlib.h:1087
uint64_t total_bytes
Total size of the original WIM's file and metadata resources (compressed).
Definition: wimlib.h:1090
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:1100
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:1095
unsigned total_parts
Total number of split WIM parts that are being written.
Definition: wimlib.h:1103
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:1112
Valid on messages WIMLIB_PROGRESS_MSG_TEST_FILE_EXCLUSION.
Definition: wimlib.h:1190
bool will_exclude
Indicates whether the file or directory will be excluded from capture or not.
Definition: wimlib.h:1212
const wimlib_tchar * path
Path to the file for which exclusion is being tested.
Definition: wimlib.h:1204
Valid on messages WIMLIB_PROGRESS_MSG_UNMOUNT_BEGIN.
Definition: wimlib.h:1131
uint32_t unmount_flags
Flags passed to wimlib_unmount_image().
Definition: wimlib.h:1146
const wimlib_tchar * mountpoint
Path to directory being unmounted
Definition: wimlib.h:1133
uint32_t mount_flags
Flags that were passed to wimlib_mount_image() when the mountpoint was set up.
Definition: wimlib.h:1143
const wimlib_tchar * mounted_wim
Path to WIM file being unmounted
Definition: wimlib.h:1136
uint32_t mounted_image
1-based index of image being unmounted.
Definition: wimlib.h:1139
Valid on messages WIMLIB_PROGRESS_MSG_UPDATE_BEGIN_COMMAND and WIMLIB_PROGRESS_MSG_UPDATE_END_COMMAND...
Definition: wimlib.h:1042
const struct wimlib_update_command * command
Pointer to the update command that will be executed or has just been executed.
Definition: wimlib.h:1045
size_t total_commands
Number of update commands that are being executed as part of this call to wimlib_update_image().
Definition: wimlib.h:1053
size_t completed_commands
Number of update commands that have been completed so far.
Definition: wimlib.h:1049
Valid on messages WIMLIB_PROGRESS_MSG_BEGIN_VERIFY_IMAGE and WIMLIB_PROGRESS_MSG_END_VERIFY_IMAGE.
Definition: wimlib.h:1174
const wimlib_tchar * wimfile
Definition: wimlib.h:1175
uint32_t current_image
Definition: wimlib.h:1177
uint32_t total_images
Definition: wimlib.h:1176
Valid on messages WIMLIB_PROGRESS_MSG_VERIFY_STREAMS.
Definition: wimlib.h:1181
uint64_t completed_streams
Definition: wimlib.h:1185
const wimlib_tchar * wimfile
Definition: wimlib.h:1182
Valid on messages WIMLIB_PROGRESS_MSG_WIMBOOT_EXCLUDE
Definition: wimlib.h:1122
const wimlib_tchar * path_in_wim
Path to the file in the image
Definition: wimlib.h:1124
const wimlib_tchar * extraction_path
Path to which the file is being extracted
Definition: wimlib.h:1127
Valid on the message WIMLIB_PROGRESS_MSG_WRITE_STREAMS.
Definition: wimlib.h:809
uint64_t completed_bytes
The number of bytes of file data that have been written so far.
Definition: wimlib.h:831
uint64_t total_bytes
An upper bound on the number of bytes of file data that will be written.
Definition: wimlib.h:816
int32_t compression_type
The compression type being used, as one of the wimlib_compression_type constants.
Definition: wimlib.h:844
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:849
uint64_t completed_compressed_bytes
Since wimlib v1.13.4: Like completed_bytes, but counts the compressed size.
Definition: wimlib.h:856
uint64_t total_streams
An upper bound on the number of distinct file data "blobs" that will be written.
Definition: wimlib.h:824
uint32_t num_threads
The number of threads being used for data compression; or, if no compression is being performed,...
Definition: wimlib.h:840
uint32_t completed_parts
This is currently broken and will always be 0.
Definition: wimlib.h:852
uint64_t completed_streams
The number of distinct file data "blobs" that have been written so far.
Definition: wimlib.h:836
Data for a WIMLIB_UPDATE_OP_RENAME operation.
Definition: wimlib.h:2485
wimlib_tchar * wim_target_path
The path to the destination file or directory within the image.
Definition: wimlib.h:2491
wimlib_tchar * wim_source_path
The path to the source file or directory within the image.
Definition: wimlib.h:2488
int rename_flags
Reserved; set to 0.
Definition: wimlib.h:2494
Information about a "blob", which is a fixed length sequence of binary data.
Definition: wimlib.h:1422
uint32_t reserved_flags
Definition: wimlib.h:1469
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:1449
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:1481
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:1440
uint32_t is_free
Definition: wimlib.h:1458
uint64_t uncompressed_size
If this blob is not missing, then this is the uncompressed size of this blob in bytes.
Definition: wimlib.h:1426
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:1473
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:1430
uint32_t is_compressed
1 iff this blob is located in a non-solid compressed WIM resource.
Definition: wimlib.h:1453
uint64_t reserved[1]
Definition: wimlib.h:1483
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:1464
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:1436
uint32_t is_spanned
Definition: wimlib.h:1459
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:1444
uint32_t is_metadata
1 iff this blob contains the metadata for an image.
Definition: wimlib.h:1456
uint32_t packed
1 iff this blob is located in a solid resource.
Definition: wimlib.h:1467
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:1477
Information about a stream of a particular file in the WIM.
Definition: wimlib.h:1497
struct wimlib_resource_entry resource
Info about this stream's data, such as its hash and size if known.
Definition: wimlib.h:1503
uint64_t reserved[4]
Definition: wimlib.h:1505
const wimlib_tchar * stream_name
Name of the stream, or NULL if the stream is unnamed.
Definition: wimlib.h:1500
Specification of an update to perform on a WIM image.
Definition: wimlib.h:2498
struct wimlib_delete_command delete_
Definition: wimlib.h:2504
struct wimlib_add_command add
Definition: wimlib.h:2503
struct wimlib_rename_command rename
Definition: wimlib.h:2506
enum wimlib_update_op op
Definition: wimlib.h:2500
General information about a WIM file.
Definition: wimlib.h:1317
uint32_t is_marked_readonly
1 iff the "readonly" flag is set in this WIM's header
Definition: wimlib.h:1369
uint32_t has_integrity_table
1 iff this WIM file has an integrity table.
Definition: wimlib.h:1354
uint32_t reserved[9]
Definition: wimlib.h:1386
uint32_t wim_version
The version of the WIM file format used in this WIM file.
Definition: wimlib.h:1331
uint32_t is_readonly
1 iff this WIM file is considered readonly for any reason (e.g.
Definition: wimlib.h:1363
uint32_t spanned
1 iff the "spanned" flag is set in this WIM's header
Definition: wimlib.h:1372
uint32_t resource_only
1 iff the "resource only" flag is set in this WIM's header
Definition: wimlib.h:1381
uint32_t chunk_size
The default compression chunk size of resources in this WIM file.
Definition: wimlib.h:1335
uint32_t has_rpfix
1 iff the "reparse point fix" flag is set in this WIM's header
Definition: wimlib.h:1366
uint32_t image_count
The number of images in this WIM file.
Definition: wimlib.h:1324
uint32_t opened_from_file
1 iff this info struct is for a WIMStruct that has a backing file.
Definition: wimlib.h:1358
uint16_t total_parts
For split WIMs, the total number of parts in the split WIM; otherwise 1.
Definition: wimlib.h:1343
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:1328
uint16_t part_number
For split WIMs, the 1-based index of this part within the split WIM; otherwise 1.
Definition: wimlib.h:1339
uint32_t metadata_only
1 iff the "metadata only" flag is set in this WIM's header
Definition: wimlib.h:1378
uint32_t pipable
1 iff this WIM file is pipable (see WIMLIB_WRITE_FLAG_PIPABLE).
Definition: wimlib.h:1384
uint32_t reserved_flags
Definition: wimlib.h:1385
uint8_t guid[WIMLIB_GUID_LEN]
The globally unique identifier for this WIM.
Definition: wimlib.h:1321
uint32_t write_in_progress
1 iff the "write in progress" flag is set in this WIM's header
Definition: wimlib.h:1375
uint64_t total_bytes
The size of this WIM file in bytes, excluding the XML data and integrity table.
Definition: wimlib.h:1351
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:1347
A pointer to this union is passed to the user-supplied wimlib_progress_func_t progress function.
Definition: wimlib.h:804
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