* @brief External header for wimlib.
*
* This file contains comments for generating documentation with Doxygen. The
- * built HTML documentation can be viewed at http://wimlib.sourceforge.net.
- * Make sure to see the <a href="modules.html">Modules page</a> to make more
- * sense of the declarations in this header.
+ * built HTML documentation can be viewed at http://wimlib.net/apidoc. Make
+ * sure to see the <a href="modules.html">Modules page</a> to make more sense of
+ * the declarations in this header.
*/
/**
* @mainpage
*
- * This is the documentation for the library interface of wimlib 1.8.0, a C
+ * This is the documentation for the library interface of wimlib 1.8.1, a C
* library for creating, modifying, extracting, and mounting files in the
* Windows Imaging Format. This documentation is intended for developers only.
* If you have installed wimlib and want to know how to use the @b wimlib-imagex
* program, please see the manual pages and also the <a
- * href="http://sourceforge.net/p/wimlib/code/ci/master/tree/README">README
+ * href="http://wimlib.net/gitlist/wimlib/blob/master/README">README
* file</a>.
*
* @section sec_installing Installing
*
* @subsection UNIX
*
- * Download the source code from <a
- * href="http://sourceforge.net/projects/wimlib/files">http://sourceforge.net/projects/wimlib/files</a>.
- * Install the library by running <c>configure && make && sudo make install</c>.
- * See the README for information about configuration options. To use wimlib in
- * your program after installing it, include wimlib.h and link your program with
- * <c>-lwim</c>.
+ * Download the source code from http://wimlib.net. Install the library by
+ * running <c>configure && make && sudo make install</c>. See the README for
+ * information about configuration options. To use wimlib in your program after
+ * installing it, include wimlib.h and link your program with <c>-lwim</c>.
*
* @subsection Windows
*
* Download the Windows binary distribution with the appropriate architecture
- * (i686 or x86_64 --- also called "x86" and "amd64" respectively) from <a
- * href="http://sourceforge.net/projects/wimlib/files">http://sourceforge.net/projects/wimlib/files</a>.
- * Link your program with the libwim-15.dll file. Make sure to also download
- * the source code so you can get wimlib.h, as it is not included in the binary
- * distribution. If you need to access the DLL from other programming
- * languages, note that the calling convention is "cdecl".
+ * (i686 or x86_64 --- also called "x86" and "amd64" respectively) from
+ * http://wimlib.net. Link your program with the libwim-15.dll file. Make sure
+ * to also download the source code so you can get wimlib.h, as it is not
+ * included in the binary distribution. If you need to access the DLL from
+ * other programming languages, note that the calling convention is "cdecl".
*
* @section sec_examples Examples
*
- * Several examples are located in the <a
- * href="http://sourceforge.net/p/wimlib/code/ci/master/tree/examples">examples</a>
- * directory of the source distribution.
+ * Several examples are located in the "examples" directory of the source
+ * distribution.
*
* There is also the <a
- * href="http://sourceforge.net/p/wimlib/code/ci/master/tree/programs/imagex.c">
- * source code of <b>wimlib-imagex</b></a>, which is complicated but uses most
+ * href="http://wimlib.net/gitlist/wimlib/blob/master/programs/imagex.c"> source
+ * code of <b>wimlib-imagex</b></a>, which is complicated but uses most
* capabilities of wimlib.
*
* @section backwards_compatibility Backwards Compatibility
#define WIMLIB_MINOR_VERSION 8
/** Patch version of the library (for example, the 5 in 1.2.5). */
-#define WIMLIB_PATCH_VERSION 0
+#define WIMLIB_PATCH_VERSION 1
#ifdef __cplusplus
extern "C" {
*/
uint32_t opened_from_file : 1;
- /** 1 iff this WIM file is considered readonly for any reason. */
+ /** 1 iff this WIM file is considered readonly for any reason (e.g. the
+ * "readonly" header flag is set, or this is part of a split WIM, or
+ * filesystem permissions deny writing) */
uint32_t is_readonly : 1;
- /** 1 iff reparse-point fixups are enabled for one or more images in
- * this WIM file. */
+ /** 1 iff the "reparse point fix" flag is set in this WIM's header */
uint32_t has_rpfix : 1;
- /** 1 iff this WIM file is marked read-only in its header. */
+ /** 1 iff the "readonly" flag is set in this WIM's header */
uint32_t is_marked_readonly : 1;
- /** 1 iff this WIM file is part of a spanned set. */
+ /** 1 iff the "spanned" flag is set in this WIM's header */
uint32_t spanned : 1;
+ /** 1 iff the "write in progress" flag is set in this WIM's header */
uint32_t write_in_progress : 1;
+
+ /** 1 iff the "metadata only" flag is set in this WIM's header */
uint32_t metadata_only : 1;
+
+ /** 1 iff the "resource only" flag is set in this WIM's header */
uint32_t resource_only : 1;
/** 1 iff this WIM file is pipable (see ::WIMLIB_WRITE_FLAG_PIPABLE). */
*/
#define WIMLIB_EXTRACT_FLAG_WIMBOOT 0x00400000
+/** EXPERIMENTAL and only works on Windows 10 and later: compress the extracted
+ * files using the System Compression feature (when possible). System
+ * Compression is only supported by Windows 10 or later. Several different
+ * compression formats may be used with System Compression; this particular flag
+ * selects the XPRESS compression format with 4096 byte chunks. <b>This flag is
+ * currently experimental and may be changed or removed in future releases of
+ * wimlib.</b> */
+#define WIMLIB_EXTRACT_FLAG_COMPACT_XPRESS4K 0x01000000
+
+/** Like ::WIMLIB_EXTRACT_FLAG_COMPACT_XPRESS4K, but use XPRESS compression with
+ * 8192 byte chunks. <b>This flag is currently experimental and may be changed
+ * or removed in future releases of wimlib.</b> */
+#define WIMLIB_EXTRACT_FLAG_COMPACT_XPRESS8K 0x02000000
+
+/** Like ::WIMLIB_EXTRACT_FLAG_COMPACT_XPRESS4K, but use XPRESS compression with
+ * 16384 byte chunks. <b>This flag is currently experimental and may be changed
+ * or removed in future releases of wimlib.</b> */
+#define WIMLIB_EXTRACT_FLAG_COMPACT_XPRESS16K 0x04000000
+
+/** Like ::WIMLIB_EXTRACT_FLAG_COMPACT_XPRESS4K, but use LZX compression with
+ * 32768 byte chunks. <b>This flag is currently experimental and may be changed
+ * or removed in future releases of wimlib.</b> */
+#define WIMLIB_EXTRACT_FLAG_COMPACT_LZX 0x08000000
+
/** @} */
/** @addtogroup G_mounting_wim_images
* @{ */
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_EXTRACT_FLAG_NTFS was not specified in @p extract_flags.
* @retval ::WIMLIB_ERR_WIMBOOT
* ::WIMLIB_EXTRACT_FLAG_WIMBOOT was specified in @p extract_flags, but
- * there was a problem creating WIMBoot pointer files.
+ * there was a problem creating WIMBoot pointer files or registering a
+ * source WIM file with the Windows Overlay Filesystem (WOF) driver.
* @retval ::WIMLIB_ERR_WRITE
* Failed to write data to a file being extracted.
*
* Windows-only: One of the "add" commands attempted to add files from an
* encrypted BitLocker volume that hasn't yet been unlocked.
* @retval ::WIMLIB_ERR_INVALID_CAPTURE_CONFIG
- * The capture configuration structure specified for an add command was
- * invalid.
+ * The contents of a capture configuration file were invalid.
* @retval ::WIMLIB_ERR_INVALID_IMAGE
* @p image did not exist in @p wim.
* @retval ::WIMLIB_ERR_INVALID_OVERLAY
* @retval ::WIMLIB_ERR_STAT
* While executing an add command, failed to get attributes for a file or
* directory.
+ * @retval ::WIMLIB_ERR_UNABLE_TO_READ_CAPTURE_CONFIG
+ * A capture configuration file could not be read.
* @retval ::WIMLIB_ERR_UNSUPPORTED
* ::WIMLIB_ADD_FLAG_NTFS was specified in the @p add_flags for an update
* command, but wimlib was configured with the @c --without-ntfs-3g flag;