Loading...
Searching...
No Matches
wimlib.h File Reference

External header for wimlib. More...

`#include <stdio.h>`
`#include <stddef.h>`
`#include <stdbool.h>`
`#include <stdint.h>`
`#include <time.h>`
Include dependency graph for wimlib.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 5
| 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 ``?
#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_tchar * | wimlib_get_compression_type_string (enum wimlib_compression_type ctype)
| Convert a wimlib_compression_type value into a string.
WIMLIBAPI const wimlib_tchar * | wimlib_get_error_string (enum wimlib_error_code code)
| Convert a wimlib error code into a string describing it.
WIMLIBAPI const wimlib_tchar * | wimlib_get_image_description (const WIMStruct *wim, int image)
| Get the description of the specified image.
WIMLIBAPI const wimlib_tchar * | wimlib_get_image_name (const WIMStruct *wim, int image)
| Get the name of the specified image.
WIMLIBAPI const wimlib_tchar * | wimlib_get_image_property (const WIMStruct *wim, int image, const wimlib_tchar *property_name)
| Since wimlib v1.8.3: get a per-image property from the WIM's XML document.
WIMLIBAPI 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_tchar * | wimlib_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