wimlib
Loading...
Searching...
No Matches
Data Structures | Macros | Typedefs | Enumerations | Functions
wimlib.h File Reference

External header for wimlib. More...

#include <stdio.h>
#include <stddef.h>
#include <stdbool.h>
#include <stdint.h>
#include <time.h>

Go to the source code of this file.

Data Structures

union  wimlib_progress_info
 A pointer to this union is passed to the user-supplied wimlib_progress_func_t progress function. More...
 
struct  wimlib_progress_info::wimlib_progress_info_write_streams
 Valid on the message WIMLIB_PROGRESS_MSG_WRITE_STREAMS. More...
 
struct  wimlib_progress_info::wimlib_progress_info_scan
 Valid on messages WIMLIB_PROGRESS_MSG_SCAN_BEGIN, WIMLIB_PROGRESS_MSG_SCAN_DENTRY, and WIMLIB_PROGRESS_MSG_SCAN_END. More...
 
struct  wimlib_progress_info::wimlib_progress_info_extract
 Valid on messages WIMLIB_PROGRESS_MSG_EXTRACT_SPWM_PART_BEGIN, WIMLIB_PROGRESS_MSG_EXTRACT_IMAGE_BEGIN, WIMLIB_PROGRESS_MSG_EXTRACT_TREE_BEGIN, WIMLIB_PROGRESS_MSG_EXTRACT_FILE_STRUCTURE, WIMLIB_PROGRESS_MSG_EXTRACT_STREAMS, WIMLIB_PROGRESS_MSG_EXTRACT_METADATA, WIMLIB_PROGRESS_MSG_EXTRACT_TREE_END, and WIMLIB_PROGRESS_MSG_EXTRACT_IMAGE_END. More...
 
struct  wimlib_progress_info::wimlib_progress_info_rename
 Valid on messages WIMLIB_PROGRESS_MSG_RENAME. More...
 
struct  wimlib_progress_info::wimlib_progress_info_update
 Valid on messages WIMLIB_PROGRESS_MSG_UPDATE_BEGIN_COMMAND and WIMLIB_PROGRESS_MSG_UPDATE_END_COMMAND. More...
 
struct  wimlib_progress_info::wimlib_progress_info_integrity
 Valid on messages WIMLIB_PROGRESS_MSG_VERIFY_INTEGRITY and WIMLIB_PROGRESS_MSG_CALC_INTEGRITY. More...
 
struct  wimlib_progress_info::wimlib_progress_info_split
 Valid on messages WIMLIB_PROGRESS_MSG_SPLIT_BEGIN_PART and WIMLIB_PROGRESS_MSG_SPLIT_END_PART. More...
 
struct  wimlib_progress_info::wimlib_progress_info_replace
 Valid on messages WIMLIB_PROGRESS_MSG_REPLACE_FILE_IN_WIM
More...
 
struct  wimlib_progress_info::wimlib_progress_info_wimboot_exclude
 Valid on messages WIMLIB_PROGRESS_MSG_WIMBOOT_EXCLUDE
More...
 
struct  wimlib_progress_info::wimlib_progress_info_unmount
 Valid on messages WIMLIB_PROGRESS_MSG_UNMOUNT_BEGIN. More...
 
struct  wimlib_progress_info::wimlib_progress_info_done_with_file
 Valid on messages WIMLIB_PROGRESS_MSG_DONE_WITH_FILE. More...
 
struct  wimlib_progress_info::wimlib_progress_info_verify_image
 Valid on messages WIMLIB_PROGRESS_MSG_BEGIN_VERIFY_IMAGE and WIMLIB_PROGRESS_MSG_END_VERIFY_IMAGE. More...
 
struct  wimlib_progress_info::wimlib_progress_info_verify_streams
 Valid on messages WIMLIB_PROGRESS_MSG_VERIFY_STREAMS. More...
 
struct  wimlib_progress_info::wimlib_progress_info_test_file_exclusion
 Valid on messages WIMLIB_PROGRESS_MSG_TEST_FILE_EXCLUSION. More...
 
struct  wimlib_progress_info::wimlib_progress_info_handle_error
 Valid on messages WIMLIB_PROGRESS_MSG_HANDLE_ERROR. More...
 
struct  wimlib_capture_source
 An array of these structures is passed to wimlib_add_image_multisource() to specify the sources from which to create a WIM image. More...
 
struct  wimlib_wim_info
 General information about a WIM file. More...
 
struct  wimlib_resource_entry
 Information about a "blob", which is a fixed length sequence of binary data. More...
 
struct  wimlib_stream_entry
 Information about a stream of a particular file in the WIM. More...
 
struct  wimlib_object_id
 Since wimlib v1.9.1: an object ID, which is an extra piece of metadata that may be associated with a file on NTFS filesystems. More...
 
struct  wimlib_dir_entry
 Structure passed to the wimlib_iterate_dir_tree() callback function. More...
 
struct  wimlib_add_command
 Data for a WIMLIB_UPDATE_OP_ADD operation. More...
 
struct  wimlib_delete_command
 Data for a WIMLIB_UPDATE_OP_DELETE operation. More...
 
struct  wimlib_rename_command
 Data for a WIMLIB_UPDATE_OP_RENAME operation. More...
 
struct  wimlib_update_command
 Specification of an update to perform on a WIM image. More...
 

Macros

#define WIMLIBAPI
 
#define WIMLIB_MAJOR_VERSION   1
 Major version of the library (for example, the 1 in 1.2.5).
 
#define WIMLIB_MINOR_VERSION   14
 Minor version of the library (for example, the 2 in 1.2.5).
 
#define WIMLIB_PATCH_VERSION   4
 Patch version of the library (for example, the 5 in 1.2.5).
 
#define wimlib_timespec   timespec /* standard definition */
 
#define WIMLIB_WIMSTRUCT_DECLARED
 
#define WIMLIB_WIM_PATH_SEPARATOR   '/'
 Path separator for WIM paths passed back to progress callbacks.
 
#define WIMLIB_WIM_PATH_SEPARATOR_STRING   "/"
 
#define WIMLIB_WIM_ROOT_PATH   WIMLIB_WIM_PATH_SEPARATOR_STRING
 A string containing a single path separator; use this to specify the root directory of a WIM image.
 
#define WIMLIB_IS_WIM_ROOT_PATH(path)
 Use this to test if the specified path refers to the root directory of the WIM image.
 
#define WIMLIB_GUID_LEN   16
 Length of a Globally Unique Identifier (GUID), in bytes.
 
#define WIMLIB_CHANGE_READONLY_FLAG   0x00000001
 Set or unset the "readonly" WIM header flag (WIM_HDR_FLAG_READONLY in Microsoft's documentation), based on the wimlib_wim_info.is_marked_readonly member of the info parameter.
 
#define WIMLIB_CHANGE_GUID   0x00000002
 Set the GUID (globally unique identifier) of the WIM file to the value specified in wimlib_wim_info.guid of the info parameter.
 
#define WIMLIB_CHANGE_BOOT_INDEX   0x00000004
 Change the bootable image of the WIM to the value specified in wimlib_wim_info.boot_index of the info parameter.
 
#define WIMLIB_CHANGE_RPFIX_FLAG   0x00000008
 Change the WIM_HDR_FLAG_RP_FIX flag of the WIM file to the value specified in wimlib_wim_info.has_rpfix of the info parameter.
 
#define WIMLIB_FILE_ATTRIBUTE_READONLY   0x00000001
 
#define WIMLIB_FILE_ATTRIBUTE_HIDDEN   0x00000002
 
#define WIMLIB_FILE_ATTRIBUTE_SYSTEM   0x00000004
 
#define WIMLIB_FILE_ATTRIBUTE_DIRECTORY   0x00000010
 
#define WIMLIB_FILE_ATTRIBUTE_ARCHIVE   0x00000020
 
#define WIMLIB_FILE_ATTRIBUTE_DEVICE   0x00000040
 
#define WIMLIB_FILE_ATTRIBUTE_NORMAL   0x00000080
 
#define WIMLIB_FILE_ATTRIBUTE_TEMPORARY   0x00000100
 
#define WIMLIB_FILE_ATTRIBUTE_SPARSE_FILE   0x00000200
 
#define WIMLIB_FILE_ATTRIBUTE_REPARSE_POINT   0x00000400
 
#define WIMLIB_FILE_ATTRIBUTE_COMPRESSED   0x00000800
 
#define WIMLIB_FILE_ATTRIBUTE_OFFLINE   0x00001000
 
#define WIMLIB_FILE_ATTRIBUTE_NOT_CONTENT_INDEXED   0x00002000
 
#define WIMLIB_FILE_ATTRIBUTE_ENCRYPTED   0x00004000
 
#define WIMLIB_FILE_ATTRIBUTE_VIRTUAL   0x00010000
 
#define WIMLIB_REPARSE_TAG_RESERVED_ZERO   0x00000000
 
#define WIMLIB_REPARSE_TAG_RESERVED_ONE   0x00000001
 
#define WIMLIB_REPARSE_TAG_MOUNT_POINT   0xA0000003
 
#define WIMLIB_REPARSE_TAG_HSM   0xC0000004
 
#define WIMLIB_REPARSE_TAG_HSM2   0x80000006
 
#define WIMLIB_REPARSE_TAG_DRIVER_EXTENDER   0x80000005
 
#define WIMLIB_REPARSE_TAG_SIS   0x80000007
 
#define WIMLIB_REPARSE_TAG_DFS   0x8000000A
 
#define WIMLIB_REPARSE_TAG_DFSR   0x80000012
 
#define WIMLIB_REPARSE_TAG_FILTER_MANAGER   0x8000000B
 
#define WIMLIB_REPARSE_TAG_WOF   0x80000017
 
#define WIMLIB_REPARSE_TAG_SYMLINK   0xA000000C
 
#define WIMLIB_ITERATE_DIR_TREE_FLAG_RECURSIVE   0x00000001
 For wimlib_iterate_dir_tree(): Iterate recursively on children rather than just on the specified path.
 
#define WIMLIB_ITERATE_DIR_TREE_FLAG_CHILDREN   0x00000002
 For wimlib_iterate_dir_tree(): Don't iterate on the file or directory itself; only its children (in the case of a non-empty directory)
 
#define WIMLIB_ITERATE_DIR_TREE_FLAG_RESOURCES_NEEDED   0x00000004
 Return WIMLIB_ERR_RESOURCE_NOT_FOUND if any file data blobs needed to fill in the wimlib_resource_entry's for the iteration cannot be found in the blob lookup table of the WIMStruct.
 
#define WIMLIB_ADD_FLAG_NTFS   0x00000001
 UNIX-like systems only: Directly capture an NTFS volume rather than a generic directory.
 
#define WIMLIB_ADD_FLAG_DEREFERENCE   0x00000002
 Follow symbolic links when scanning the directory tree.
 
#define WIMLIB_ADD_FLAG_VERBOSE   0x00000004
 Call the progress function with the message WIMLIB_PROGRESS_MSG_SCAN_DENTRY when each directory or file has been scanned.
 
#define WIMLIB_ADD_FLAG_BOOT   0x00000008
 Mark the image being added as the bootable image of the WIM.
 
#define WIMLIB_ADD_FLAG_UNIX_DATA   0x00000010
 UNIX-like systems only: Store the UNIX owner, group, mode, and device ID (major and minor number) of each file.
 
#define WIMLIB_ADD_FLAG_NO_ACLS   0x00000020
 Do not capture security descriptors.
 
#define WIMLIB_ADD_FLAG_STRICT_ACLS   0x00000040
 Fail immediately if the full security descriptor of any file or directory cannot be accessed.
 
#define WIMLIB_ADD_FLAG_EXCLUDE_VERBOSE   0x00000080
 Call the progress function with the message WIMLIB_PROGRESS_MSG_SCAN_DENTRY when a directory or file is excluded from capture.
 
#define WIMLIB_ADD_FLAG_RPFIX   0x00000100
 Reparse-point fixups: Modify absolute symbolic links (and junctions, in the case of Windows) that point inside the directory being captured to instead be absolute relative to the directory being captured.
 
#define WIMLIB_ADD_FLAG_NORPFIX   0x00000200
 Don't do reparse point fixups.
 
#define WIMLIB_ADD_FLAG_NO_UNSUPPORTED_EXCLUDE   0x00000400
 Do not automatically exclude unsupported files or directories from capture, such as encrypted files in NTFS-3G capture mode, or device files and FIFOs on UNIX-like systems when not also using WIMLIB_ADD_FLAG_UNIX_DATA.
 
#define WIMLIB_ADD_FLAG_WINCONFIG   0x00000800
 Automatically select a capture configuration appropriate for capturing filesystems containing Windows operating systems.
 
#define WIMLIB_ADD_FLAG_WIMBOOT   0x00001000
 Capture image as "WIMBoot compatible".
 
#define WIMLIB_ADD_FLAG_NO_REPLACE   0x00002000
 If the add command involves adding a non-directory file to a location at which there already exists a nondirectory file in the image, issue WIMLIB_ERR_INVALID_OVERLAY instead of replacing the file.
 
#define WIMLIB_ADD_FLAG_TEST_FILE_EXCLUSION   0x00004000
 Send WIMLIB_PROGRESS_MSG_TEST_FILE_EXCLUSION messages to the progress function.
 
#define WIMLIB_ADD_FLAG_SNAPSHOT   0x00008000
 Since wimlib v1.9.0: create a temporary filesystem snapshot of the source directory and add the files from it.
 
#define WIMLIB_ADD_FLAG_FILE_PATHS_UNNEEDED   0x00010000
 Since wimlib v1.9.0: permit the library to discard file paths after the initial scan.
 
#define WIMLIB_DELETE_FLAG_FORCE   0x00000001
 Do not issue an error if the path to delete does not exist.
 
#define WIMLIB_DELETE_FLAG_RECURSIVE   0x00000002
 Delete the file or directory tree recursively; if not specified, an error is issued if the path to delete is a directory.
 
#define WIMLIB_EXPORT_FLAG_BOOT   0x00000001
 If a single image is being exported, mark it bootable in the destination WIM.
 
#define WIMLIB_EXPORT_FLAG_NO_NAMES   0x00000002
 Give the exported image(s) no names.
 
#define WIMLIB_EXPORT_FLAG_NO_DESCRIPTIONS   0x00000004
 Give the exported image(s) no descriptions.
 
#define WIMLIB_EXPORT_FLAG_GIFT   0x00000008
 This advises the library that the program is finished with the source WIMStruct and will not attempt to access it after the call to wimlib_export_image(), with the exception of the call to wimlib_free().
 
#define WIMLIB_EXPORT_FLAG_WIMBOOT   0x00000010
 Mark each exported image as WIMBoot-compatible.
 
#define WIMLIB_EXTRACT_FLAG_NTFS   0x00000001
 Extract the image directly to an NTFS volume rather than a generic directory.
 
#define WIMLIB_EXTRACT_FLAG_RECOVER_DATA   0x00000002
 Since wimlib v1.13.4: Don't consider corrupted files to be an error.
 
#define WIMLIB_EXTRACT_FLAG_UNIX_DATA   0x00000020
 UNIX-like systems only: Extract UNIX-specific metadata captured with WIMLIB_ADD_FLAG_UNIX_DATA.
 
#define WIMLIB_EXTRACT_FLAG_NO_ACLS   0x00000040
 Do not extract security descriptors.
 
#define WIMLIB_EXTRACT_FLAG_STRICT_ACLS   0x00000080
 Fail immediately if the full security descriptor of any file or directory cannot be set exactly as specified in the WIM image.
 
#define WIMLIB_EXTRACT_FLAG_RPFIX   0x00000100
 This is the extraction equivalent to WIMLIB_ADD_FLAG_RPFIX.
 
#define WIMLIB_EXTRACT_FLAG_NORPFIX   0x00000200
 Force reparse-point fixups on extraction off, regardless of the state of the WIM_HDR_FLAG_RP_FIX flag in the WIM header.
 
#define WIMLIB_EXTRACT_FLAG_TO_STDOUT   0x00000400
 For wimlib_extract_paths() and wimlib_extract_pathlist() only: Extract the paths, each of which must name a regular file, to standard output.
 
#define WIMLIB_EXTRACT_FLAG_REPLACE_INVALID_FILENAMES   0x00000800
 Instead of ignoring files and directories with names that cannot be represented on the current platform (note: Windows has more restrictions on filenames than POSIX-compliant systems), try to replace characters or append junk to the names so that they can be extracted in some form.
 
#define WIMLIB_EXTRACT_FLAG_ALL_CASE_CONFLICTS   0x00001000
 On Windows, when there exist two or more files with the same case insensitive name but different case sensitive names, try to extract them all by appending junk to the end of them, rather than arbitrarily extracting only one.
 
#define WIMLIB_EXTRACT_FLAG_STRICT_TIMESTAMPS   0x00002000
 Do not ignore failure to set timestamps on extracted files.
 
#define WIMLIB_EXTRACT_FLAG_STRICT_SHORT_NAMES   0x00004000
 Do not ignore failure to set short names on extracted files.
 
#define WIMLIB_EXTRACT_FLAG_STRICT_SYMLINKS   0x00008000
 Do not ignore failure to extract symbolic links and junctions due to permissions problems.
 
#define WIMLIB_EXTRACT_FLAG_GLOB_PATHS   0x00040000
 For wimlib_extract_paths() and wimlib_extract_pathlist() only: Treat the paths to extract as wildcard patterns ("globs") which may contain the wildcard characters ? and *.
 
#define WIMLIB_EXTRACT_FLAG_STRICT_GLOB   0x00080000
 In combination with WIMLIB_EXTRACT_FLAG_GLOB_PATHS, causes an error (WIMLIB_ERR_PATH_DOES_NOT_EXIST) rather than a warning to be issued when one of the provided globs did not match a file.
 
#define WIMLIB_EXTRACT_FLAG_NO_ATTRIBUTES   0x00100000
 Do not extract Windows file attributes such as readonly, hidden, etc.
 
#define WIMLIB_EXTRACT_FLAG_NO_PRESERVE_DIR_STRUCTURE   0x00200000
 For wimlib_extract_paths() and wimlib_extract_pathlist() only: Do not preserve the directory structure of the archive when extracting — that is, place each extracted file or directory tree directly in the target directory.
 
#define WIMLIB_EXTRACT_FLAG_WIMBOOT   0x00400000
 Windows only: Extract files as "pointers" back to the WIM archive.
 
#define WIMLIB_EXTRACT_FLAG_COMPACT_XPRESS4K   0x01000000
 Since wimlib v1.8.2 and Windows-only: compress the extracted files using System Compression, when possible.
 
#define WIMLIB_EXTRACT_FLAG_COMPACT_XPRESS8K   0x02000000
 Like WIMLIB_EXTRACT_FLAG_COMPACT_XPRESS4K, but use XPRESS compression with 8192 byte chunks.
 
#define WIMLIB_EXTRACT_FLAG_COMPACT_XPRESS16K   0x04000000
 Like WIMLIB_EXTRACT_FLAG_COMPACT_XPRESS4K, but use XPRESS compression with 16384 byte chunks.
 
#define WIMLIB_EXTRACT_FLAG_COMPACT_LZX   0x08000000
 Like WIMLIB_EXTRACT_FLAG_COMPACT_XPRESS4K, but use LZX compression with 32768 byte chunks.
 
#define WIMLIB_MOUNT_FLAG_READWRITE   0x00000001
 Mount the WIM image read-write rather than the default of read-only.
 
#define WIMLIB_MOUNT_FLAG_DEBUG   0x00000002
 Enable FUSE debugging by passing the -d option to fuse_main().
 
#define WIMLIB_MOUNT_FLAG_STREAM_INTERFACE_NONE   0x00000004
 Do not allow accessing named data streams in the mounted WIM image.
 
#define WIMLIB_MOUNT_FLAG_STREAM_INTERFACE_XATTR   0x00000008
 Access named data streams in the mounted WIM image through extended file attributes named "user.X", where X is the name of a data stream.
 
#define WIMLIB_MOUNT_FLAG_STREAM_INTERFACE_WINDOWS   0x00000010
 Access named data streams in the mounted WIM image by specifying the file name, a colon, then the name of the data stream.
 
#define WIMLIB_MOUNT_FLAG_UNIX_DATA   0x00000020
 Support UNIX owners, groups, modes, and special files.
 
#define WIMLIB_MOUNT_FLAG_ALLOW_OTHER   0x00000040
 Allow other users to see the mounted filesystem.
 
#define WIMLIB_OPEN_FLAG_CHECK_INTEGRITY   0x00000001
 Verify the WIM contents against the WIM's integrity table, if present.
 
#define WIMLIB_OPEN_FLAG_ERROR_IF_SPLIT   0x00000002
 Issue an error (WIMLIB_ERR_IS_SPLIT_WIM) if the WIM is part of a split WIM.
 
#define WIMLIB_OPEN_FLAG_WRITE_ACCESS   0x00000004
 Check if the WIM is writable and issue an error (WIMLIB_ERR_WIM_IS_READONLY) if it is not.
 
#define WIMLIB_UNMOUNT_FLAG_CHECK_INTEGRITY   0x00000001
 Provide WIMLIB_WRITE_FLAG_CHECK_INTEGRITY when committing the WIM image.
 
#define WIMLIB_UNMOUNT_FLAG_COMMIT   0x00000002
 Commit changes to the read-write mounted WIM image.
 
#define WIMLIB_UNMOUNT_FLAG_REBUILD   0x00000004
 Provide WIMLIB_WRITE_FLAG_REBUILD when committing the WIM image.
 
#define WIMLIB_UNMOUNT_FLAG_RECOMPRESS   0x00000008
 Provide WIMLIB_WRITE_FLAG_RECOMPRESS when committing the WIM image.
 
#define WIMLIB_UNMOUNT_FLAG_FORCE   0x00000010
 In combination with WIMLIB_UNMOUNT_FLAG_COMMIT for a read-write mounted WIM image, forces all file descriptors to the open WIM image to be closed before committing it.
 
#define WIMLIB_UNMOUNT_FLAG_NEW_IMAGE   0x00000020
 In combination with WIMLIB_UNMOUNT_FLAG_COMMIT for a read-write mounted WIM image, causes the modified image to be committed to the WIM file as a new, unnamed image appended to the archive.
 
#define WIMLIB_UPDATE_FLAG_SEND_PROGRESS   0x00000001
 Send WIMLIB_PROGRESS_MSG_UPDATE_BEGIN_COMMAND and WIMLIB_PROGRESS_MSG_UPDATE_END_COMMAND messages.
 
#define WIMLIB_WRITE_FLAG_CHECK_INTEGRITY   0x00000001
 Include an integrity table in the resulting WIM file.
 
#define WIMLIB_WRITE_FLAG_NO_CHECK_INTEGRITY   0x00000002
 Do not include an integrity table in the resulting WIM file.
 
#define WIMLIB_WRITE_FLAG_PIPABLE   0x00000004
 Write the WIM as "pipable".
 
#define WIMLIB_WRITE_FLAG_NOT_PIPABLE   0x00000008
 Do not write the WIM as "pipable".
 
#define WIMLIB_WRITE_FLAG_RECOMPRESS   0x00000010
 When writing data to the WIM file, recompress it, even if the data is already available in the desired compressed form (for example, in a WIM file from which an image has been exported using wimlib_export_image()).
 
#define WIMLIB_WRITE_FLAG_FSYNC   0x00000020
 Immediately before closing the WIM file, sync its data to disk.
 
#define WIMLIB_WRITE_FLAG_REBUILD   0x00000040
 For wimlib_overwrite(): rebuild the entire WIM file, even if it otherwise could be updated in-place by appending to it.
 
#define WIMLIB_WRITE_FLAG_SOFT_DELETE   0x00000080
 For wimlib_overwrite(): override the default behavior after one or more calls to wimlib_delete_image(), which is to rebuild the entire WIM file.
 
#define WIMLIB_WRITE_FLAG_IGNORE_READONLY_FLAG   0x00000100
 For wimlib_overwrite(), allow overwriting the WIM file even if the readonly flag (WIM_HDR_FLAG_READONLY) is set in the WIM header.
 
#define WIMLIB_WRITE_FLAG_SKIP_EXTERNAL_WIMS   0x00000200
 Do not include file data already present in other WIMs.
 
#define WIMLIB_WRITE_FLAG_STREAMS_OK   0x00000400
 Deprecated; this flag should not be used outside of the library itself.
 
#define WIMLIB_WRITE_FLAG_RETAIN_GUID   0x00000800
 For wimlib_write(), retain the WIM's GUID instead of generating a new one.
 
#define WIMLIB_WRITE_FLAG_SOLID   0x00001000
 Concatenate files and compress them together, rather than compress each file independently.
 
#define WIMLIB_WRITE_FLAG_SEND_DONE_WITH_FILE_MESSAGES   0x00002000
 Send WIMLIB_PROGRESS_MSG_DONE_WITH_FILE messages while writing the WIM file.
 
#define WIMLIB_WRITE_FLAG_NO_SOLID_SORT   0x00004000
 Do not consider content similarity when arranging file data for solid compression.
 
#define WIMLIB_WRITE_FLAG_UNSAFE_COMPACT   0x00008000
 Since wimlib v1.8.3 and for wimlib_overwrite() only: unsafely compact the WIM file in-place, without appending.
 
#define WIMLIB_INIT_FLAG_ASSUME_UTF8   0x00000001
 Deprecated; no longer has any effect.
 
#define WIMLIB_INIT_FLAG_DONT_ACQUIRE_PRIVILEGES   0x00000002
 Windows-only: do not attempt to acquire additional privileges (currently SeBackupPrivilege, SeRestorePrivilege, SeSecurityPrivilege, SeTakeOwnershipPrivilege, and SeManageVolumePrivilege) when initializing the library.
 
#define WIMLIB_INIT_FLAG_STRICT_CAPTURE_PRIVILEGES   0x00000004
 Windows only: If WIMLIB_INIT_FLAG_DONT_ACQUIRE_PRIVILEGES not specified, return WIMLIB_ERR_INSUFFICIENT_PRIVILEGES if privileges that may be needed to read all possible data and metadata for a capture operation could not be acquired.
 
#define WIMLIB_INIT_FLAG_STRICT_APPLY_PRIVILEGES   0x00000008
 Windows only: If WIMLIB_INIT_FLAG_DONT_ACQUIRE_PRIVILEGES not specified, return WIMLIB_ERR_INSUFFICIENT_PRIVILEGES if privileges that may be needed to restore all possible data and metadata for an apply operation could not be acquired.
 
#define WIMLIB_INIT_FLAG_DEFAULT_CASE_SENSITIVE   0x00000010
 Default to interpreting WIM paths case sensitively (default on UNIX-like systems).
 
#define WIMLIB_INIT_FLAG_DEFAULT_CASE_INSENSITIVE   0x00000020
 Default to interpreting WIM paths case insensitively (default on Windows).
 
#define WIMLIB_REF_FLAG_GLOB_ENABLE   0x00000001
 For wimlib_reference_resource_files(), enable shell-style filename globbing.
 
#define WIMLIB_REF_FLAG_GLOB_ERR_ON_NOMATCH   0x00000002
 For wimlib_reference_resource_files(), issue an error (WIMLIB_ERR_GLOB_HAD_NO_MATCHES) if a glob did not match any files.
 
#define WIMLIB_NO_IMAGE   0
 Used to indicate no image or an invalid image.
 
#define WIMLIB_ALL_IMAGES   (-1)
 Used to specify all images in the WIM.
 
#define WIMLIB_COMPRESSOR_FLAG_DESTRUCTIVE   0x80000000
 

Typedefs

typedef struct WIMStruct WIMStruct
 Opaque structure that represents a WIM, possibly backed by an on-disk file.
 
typedef char wimlib_tchar
 See Character encoding.
 
typedef 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.
 
typedef 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().
 
typedef 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().
 

Enumerations

enum  wimlib_compression_type { WIMLIB_COMPRESSION_TYPE_NONE = 0 , WIMLIB_COMPRESSION_TYPE_XPRESS = 1 , WIMLIB_COMPRESSION_TYPE_LZX = 2 , WIMLIB_COMPRESSION_TYPE_LZMS = 3 }
 Specifies a compression type. More...
 
enum  wimlib_progress_msg {
  WIMLIB_PROGRESS_MSG_EXTRACT_IMAGE_BEGIN = 0 , WIMLIB_PROGRESS_MSG_EXTRACT_TREE_BEGIN = 1 , WIMLIB_PROGRESS_MSG_EXTRACT_FILE_STRUCTURE = 3 , WIMLIB_PROGRESS_MSG_EXTRACT_STREAMS = 4 ,
  WIMLIB_PROGRESS_MSG_EXTRACT_SPWM_PART_BEGIN = 5 , WIMLIB_PROGRESS_MSG_EXTRACT_METADATA = 6 , WIMLIB_PROGRESS_MSG_EXTRACT_IMAGE_END = 7 , WIMLIB_PROGRESS_MSG_EXTRACT_TREE_END = 8 ,
  WIMLIB_PROGRESS_MSG_SCAN_BEGIN = 9 , WIMLIB_PROGRESS_MSG_SCAN_DENTRY = 10 , WIMLIB_PROGRESS_MSG_SCAN_END = 11 , WIMLIB_PROGRESS_MSG_WRITE_STREAMS = 12 ,
  WIMLIB_PROGRESS_MSG_WRITE_METADATA_BEGIN = 13 , WIMLIB_PROGRESS_MSG_WRITE_METADATA_END = 14 , WIMLIB_PROGRESS_MSG_RENAME = 15 , WIMLIB_PROGRESS_MSG_VERIFY_INTEGRITY = 16 ,
  WIMLIB_PROGRESS_MSG_CALC_INTEGRITY = 17 , WIMLIB_PROGRESS_MSG_SPLIT_BEGIN_PART = 19 , WIMLIB_PROGRESS_MSG_SPLIT_END_PART = 20 , WIMLIB_PROGRESS_MSG_UPDATE_BEGIN_COMMAND = 21 ,
  WIMLIB_PROGRESS_MSG_UPDATE_END_COMMAND = 22 , WIMLIB_PROGRESS_MSG_REPLACE_FILE_IN_WIM = 23 , WIMLIB_PROGRESS_MSG_WIMBOOT_EXCLUDE = 24 , WIMLIB_PROGRESS_MSG_UNMOUNT_BEGIN = 25 ,
  WIMLIB_PROGRESS_MSG_DONE_WITH_FILE = 26 , WIMLIB_PROGRESS_MSG_BEGIN_VERIFY_IMAGE = 27 , WIMLIB_PROGRESS_MSG_END_VERIFY_IMAGE = 28 , WIMLIB_PROGRESS_MSG_VERIFY_STREAMS = 29 ,
  WIMLIB_PROGRESS_MSG_TEST_FILE_EXCLUSION = 30 , WIMLIB_PROGRESS_MSG_HANDLE_ERROR = 31
}
 Possible values of the first parameter to the user-supplied wimlib_progress_func_t progress function. More...
 
enum  wimlib_progress_status { WIMLIB_PROGRESS_STATUS_CONTINUE = 0 , WIMLIB_PROGRESS_STATUS_ABORT = 1 }
 Valid return values from user-provided progress functions (wimlib_progress_func_t). More...
 
enum  wimlib_update_op { WIMLIB_UPDATE_OP_ADD = 0 , WIMLIB_UPDATE_OP_DELETE = 1 , WIMLIB_UPDATE_OP_RENAME = 2 }
 The specific type of update to perform. More...
 
enum  wimlib_error_code {
  WIMLIB_ERR_SUCCESS = 0 , WIMLIB_ERR_ALREADY_LOCKED = 1 , WIMLIB_ERR_DECOMPRESSION = 2 , WIMLIB_ERR_FUSE = 6 ,
  WIMLIB_ERR_GLOB_HAD_NO_MATCHES = 8 , WIMLIB_ERR_IMAGE_COUNT = 10 , WIMLIB_ERR_IMAGE_NAME_COLLISION = 11 , WIMLIB_ERR_INSUFFICIENT_PRIVILEGES = 12 ,
  WIMLIB_ERR_INTEGRITY = 13 , WIMLIB_ERR_INVALID_CAPTURE_CONFIG = 14 , WIMLIB_ERR_INVALID_CHUNK_SIZE = 15 , WIMLIB_ERR_INVALID_COMPRESSION_TYPE = 16 ,
  WIMLIB_ERR_INVALID_HEADER = 17 , WIMLIB_ERR_INVALID_IMAGE = 18 , WIMLIB_ERR_INVALID_INTEGRITY_TABLE = 19 , WIMLIB_ERR_INVALID_LOOKUP_TABLE_ENTRY = 20 ,
  WIMLIB_ERR_INVALID_METADATA_RESOURCE = 21 , WIMLIB_ERR_INVALID_OVERLAY = 23 , WIMLIB_ERR_INVALID_PARAM = 24 , WIMLIB_ERR_INVALID_PART_NUMBER = 25 ,
  WIMLIB_ERR_INVALID_PIPABLE_WIM = 26 , WIMLIB_ERR_INVALID_REPARSE_DATA = 27 , WIMLIB_ERR_INVALID_RESOURCE_HASH = 28 , WIMLIB_ERR_INVALID_UTF16_STRING = 30 ,
  WIMLIB_ERR_INVALID_UTF8_STRING = 31 , WIMLIB_ERR_IS_DIRECTORY = 32 , WIMLIB_ERR_IS_SPLIT_WIM = 33 , WIMLIB_ERR_LINK = 35 ,
  WIMLIB_ERR_METADATA_NOT_FOUND = 36 , WIMLIB_ERR_MKDIR = 37 , WIMLIB_ERR_MQUEUE = 38 , WIMLIB_ERR_NOMEM = 39 ,
  WIMLIB_ERR_NOTDIR = 40 , WIMLIB_ERR_NOTEMPTY = 41 , WIMLIB_ERR_NOT_A_REGULAR_FILE = 42 , WIMLIB_ERR_NOT_A_WIM_FILE = 43 ,
  WIMLIB_ERR_NOT_PIPABLE = 44 , WIMLIB_ERR_NO_FILENAME = 45 , WIMLIB_ERR_NTFS_3G = 46 , WIMLIB_ERR_OPEN = 47 ,
  WIMLIB_ERR_OPENDIR = 48 , WIMLIB_ERR_PATH_DOES_NOT_EXIST = 49 , WIMLIB_ERR_READ = 50 , WIMLIB_ERR_READLINK = 51 ,
  WIMLIB_ERR_RENAME = 52 , WIMLIB_ERR_REPARSE_POINT_FIXUP_FAILED = 54 , WIMLIB_ERR_RESOURCE_NOT_FOUND = 55 , WIMLIB_ERR_RESOURCE_ORDER = 56 ,
  WIMLIB_ERR_SET_ATTRIBUTES = 57 , WIMLIB_ERR_SET_REPARSE_DATA = 58 , WIMLIB_ERR_SET_SECURITY = 59 , WIMLIB_ERR_SET_SHORT_NAME = 60 ,
  WIMLIB_ERR_SET_TIMESTAMPS = 61 , WIMLIB_ERR_SPLIT_INVALID = 62 , WIMLIB_ERR_STAT = 63 , WIMLIB_ERR_UNEXPECTED_END_OF_FILE = 65 ,
  WIMLIB_ERR_UNICODE_STRING_NOT_REPRESENTABLE = 66 , WIMLIB_ERR_UNKNOWN_VERSION = 67 , WIMLIB_ERR_UNSUPPORTED = 68 , WIMLIB_ERR_UNSUPPORTED_FILE = 69 ,
  WIMLIB_ERR_WIM_IS_READONLY = 71 , WIMLIB_ERR_WRITE = 72 , WIMLIB_ERR_XML = 73 , WIMLIB_ERR_WIM_IS_ENCRYPTED = 74 ,
  WIMLIB_ERR_WIMBOOT = 75 , WIMLIB_ERR_ABORTED_BY_PROGRESS = 76 , WIMLIB_ERR_UNKNOWN_PROGRESS_STATUS = 77 , WIMLIB_ERR_MKNOD = 78 ,
  WIMLIB_ERR_MOUNTED_IMAGE_IS_BUSY = 79 , WIMLIB_ERR_NOT_A_MOUNTPOINT = 80 , WIMLIB_ERR_NOT_PERMITTED_TO_UNMOUNT = 81 , WIMLIB_ERR_FVE_LOCKED_VOLUME = 82 ,
  WIMLIB_ERR_UNABLE_TO_READ_CAPTURE_CONFIG = 83 , WIMLIB_ERR_WIM_IS_INCOMPLETE = 84 , WIMLIB_ERR_COMPACTION_NOT_POSSIBLE = 85 , WIMLIB_ERR_IMAGE_HAS_MULTIPLE_REFERENCES = 86 ,
  WIMLIB_ERR_DUPLICATE_EXPORTED_IMAGE = 87 , WIMLIB_ERR_CONCURRENT_MODIFICATION_DETECTED = 88 , WIMLIB_ERR_SNAPSHOT_FAILURE = 89 , WIMLIB_ERR_INVALID_XATTR = 90 ,
  WIMLIB_ERR_SET_XATTR = 91
}
 Possible values of the error code returned by many functions in wimlib. More...
 

Functions

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_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_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 combined into a single WIM image.
 
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 within the specified image of the wim.
 
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_delete_image (WIMStruct *wim, int image)
 Delete an image, or all images, from a WIMStruct.
 
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.
 
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_extract_image (WIMStruct *wim, int image, const wimlib_tchar *target, int extract_flags)
 Extract an image, or all images, from a WIMStruct.
 
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_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_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 ASCII, UTF-8, or UTF-16LE text file named by path_list_file which itself contains the list of paths to use, one per line.
 
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_xml_data (WIMStruct *wim, FILE *fp)
 Similar to wimlib_get_xml_data(), but the XML document will be written to the specified standard C FILE* instead of retrieved in an in-memory buffer.
 
WIMLIBAPI void wimlib_free (WIMStruct *wim)
 Release a reference to a WIMStruct.
 
WIMLIBAPI const wimlib_tcharwimlib_get_compression_type_string (enum wimlib_compression_type ctype)
 Convert a wimlib_compression_type value into a string.
 
WIMLIBAPI const wimlib_tcharwimlib_get_error_string (enum wimlib_error_code code)
 Convert a wimlib error code into a string describing it.
 
WIMLIBAPI const wimlib_tcharwimlib_get_image_description (const WIMStruct *wim, int image)
 Get the description of the specified image.
 
WIMLIBAPI const wimlib_tcharwimlib_get_image_name (const WIMStruct *wim, int image)
 Get the name of the specified image.
 
WIMLIBAPI const wimlib_tcharwimlib_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 uint32_t wimlib_get_version (void)
 Return the version of wimlib as a 32-bit number whose top 12 bits contain the major version, the next 10 bits contain the minor version, and the low 10 bits contain the patch version.
 
WIMLIBAPI const wimlib_tcharwimlib_get_version_string (void)
 Since wimlib v1.13.0: like wimlib_get_version(), but returns the full PACKAGE_VERSION string that was set at build time.
 
WIMLIBAPI int wimlib_get_wim_info (WIMStruct *wim, struct wimlib_wim_info *info)
 Get basic information about a WIM file.
 
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 int wimlib_global_init (int init_flags)
 Initialization function for wimlib.
 
WIMLIBAPI void wimlib_global_cleanup (void)
 Cleanup function for wimlib.
 
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 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.
 
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_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_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_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 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_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_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_overwrite (WIMStruct *wim, int write_flags, unsigned num_threads)
 Commit a WIMStruct to disk, updating its backing file.
 
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_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_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 open the WIMStruct for each referenced file itself.
 
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 in time, possibly with some modifications in the intervening time.
 
WIMLIBAPI void wimlib_register_progress_function (WIMStruct *wim, wimlib_progress_func_t progfunc, void *progctx)
 Register a progress function with a WIMStruct.
 
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_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_set_error_file (FILE *fp)
 Set the file to which the library will print error and warning messages.
 
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_image_descripton (WIMStruct *wim, int image, const wimlib_tchar *description)
 Change the description of a WIM image.
 
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" or "Ultimate").
 
WIMLIBAPI int wimlib_set_image_name (WIMStruct *wim, int image, const wimlib_tchar *name)
 Change the name of a WIM image.
 
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_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 int wimlib_set_output_chunk_size (WIMStruct *wim, uint32_t chunk_size)
 Set a WIMStruct's output compression chunk size.
 
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.
 
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_compression_type (WIMStruct *wim, enum wimlib_compression_type ctype)
 Similar to wimlib_set_output_compression_type(), but set the compression type for writing solid resources.
 
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 error.
 
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_split (WIMStruct *wim, const wimlib_tchar *swm_name, uint64_t part_size, int write_flags)
 Split a WIM into multiple parts.
 
WIMLIBAPI int wimlib_verify_wim (WIMStruct *wim, int verify_flags)
 Perform verification checks on a WIM file.
 
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_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_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_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_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 if the write is done in a special pipable WIM format by providing WIMLIB_WRITE_FLAG_PIPABLE in write_flags.
 
WIMLIBAPI int wimlib_set_default_compression_level (int ctype, unsigned int compression_level)
 Set the default compression level for the specified compression type.
 
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() for the specified compression type, maximum block size, and compression level.
 
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 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 void wimlib_free_compressor (struct wimlib_compressor *compressor)
 Free a compressor previously allocated with wimlib_create_compressor().
 
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_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 void wimlib_free_decompressor (struct wimlib_decompressor *decompressor)
 Free a decompressor previously allocated with wimlib_create_decompressor().
 

Detailed Description

External header for wimlib.

This file contains comments for generating documentation with Doxygen. The built HTML documentation can be viewed at https://wimlib.net/apidoc. Make sure to see the Modules page to make more sense of the declarations in this header.

Macro Definition Documentation

◆ WIMLIBAPI

#define WIMLIBAPI

◆ WIMLIB_FILE_ATTRIBUTE_READONLY

#define WIMLIB_FILE_ATTRIBUTE_READONLY   0x00000001

◆ WIMLIB_FILE_ATTRIBUTE_HIDDEN

#define WIMLIB_FILE_ATTRIBUTE_HIDDEN   0x00000002

◆ WIMLIB_FILE_ATTRIBUTE_SYSTEM

#define WIMLIB_FILE_ATTRIBUTE_SYSTEM   0x00000004

◆ WIMLIB_FILE_ATTRIBUTE_DIRECTORY

#define WIMLIB_FILE_ATTRIBUTE_DIRECTORY   0x00000010

◆ WIMLIB_FILE_ATTRIBUTE_ARCHIVE

#define WIMLIB_FILE_ATTRIBUTE_ARCHIVE   0x00000020

◆ WIMLIB_FILE_ATTRIBUTE_DEVICE

#define WIMLIB_FILE_ATTRIBUTE_DEVICE   0x00000040

◆ WIMLIB_FILE_ATTRIBUTE_NORMAL

#define WIMLIB_FILE_ATTRIBUTE_NORMAL   0x00000080

◆ WIMLIB_FILE_ATTRIBUTE_TEMPORARY

#define WIMLIB_FILE_ATTRIBUTE_TEMPORARY   0x00000100

◆ WIMLIB_FILE_ATTRIBUTE_SPARSE_FILE

#define WIMLIB_FILE_ATTRIBUTE_SPARSE_FILE   0x00000200

◆ WIMLIB_FILE_ATTRIBUTE_REPARSE_POINT

#define WIMLIB_FILE_ATTRIBUTE_REPARSE_POINT   0x00000400

◆ WIMLIB_FILE_ATTRIBUTE_COMPRESSED

#define WIMLIB_FILE_ATTRIBUTE_COMPRESSED   0x00000800

◆ WIMLIB_FILE_ATTRIBUTE_OFFLINE

#define WIMLIB_FILE_ATTRIBUTE_OFFLINE   0x00001000

◆ WIMLIB_FILE_ATTRIBUTE_NOT_CONTENT_INDEXED

#define WIMLIB_FILE_ATTRIBUTE_NOT_CONTENT_INDEXED   0x00002000

◆ WIMLIB_FILE_ATTRIBUTE_ENCRYPTED

#define WIMLIB_FILE_ATTRIBUTE_ENCRYPTED   0x00004000

◆ WIMLIB_FILE_ATTRIBUTE_VIRTUAL

#define WIMLIB_FILE_ATTRIBUTE_VIRTUAL   0x00010000

◆ WIMLIB_REPARSE_TAG_RESERVED_ZERO

#define WIMLIB_REPARSE_TAG_RESERVED_ZERO   0x00000000

◆ WIMLIB_REPARSE_TAG_RESERVED_ONE

#define WIMLIB_REPARSE_TAG_RESERVED_ONE   0x00000001

◆ WIMLIB_REPARSE_TAG_MOUNT_POINT

#define WIMLIB_REPARSE_TAG_MOUNT_POINT   0xA0000003

◆ WIMLIB_REPARSE_TAG_HSM

#define WIMLIB_REPARSE_TAG_HSM   0xC0000004

◆ WIMLIB_REPARSE_TAG_HSM2

#define WIMLIB_REPARSE_TAG_HSM2   0x80000006

◆ WIMLIB_REPARSE_TAG_DRIVER_EXTENDER

#define WIMLIB_REPARSE_TAG_DRIVER_EXTENDER   0x80000005

◆ WIMLIB_REPARSE_TAG_SIS

#define WIMLIB_REPARSE_TAG_SIS   0x80000007

◆ WIMLIB_REPARSE_TAG_DFS

#define WIMLIB_REPARSE_TAG_DFS   0x8000000A

◆ WIMLIB_REPARSE_TAG_DFSR

#define WIMLIB_REPARSE_TAG_DFSR   0x80000012

◆ WIMLIB_REPARSE_TAG_FILTER_MANAGER

#define WIMLIB_REPARSE_TAG_FILTER_MANAGER   0x8000000B

◆ WIMLIB_REPARSE_TAG_WOF

#define WIMLIB_REPARSE_TAG_WOF   0x80000017

◆ WIMLIB_REPARSE_TAG_SYMLINK

#define WIMLIB_REPARSE_TAG_SYMLINK   0xA000000C