]> wimlib.net Git - wimlib/blobdiff - include/wimlib/apply.h
WIMBoot: Update WimOverlay.dat directly when WOF not running
[wimlib] / include / wimlib / apply.h
index 1019a48a15116eb65d7d747be88f4ef1cb1b4cac..24648c9b3a378c19581881be787ffeb5f0d45574 100644 (file)
@@ -1,6 +1,7 @@
 #ifndef _WIMLIB_APPLY_H
 #define _WIMLIB_APPLY_H
 
+#include "wimlib/file_io.h"
 #include "wimlib/types.h"
 #include "wimlib/list.h"
 #include "wimlib.h"
@@ -71,7 +72,7 @@ struct apply_operations {
        /* REQUIRED:  Extract unnamed data stream.  */
        int (*extract_unnamed_stream)
                (file_spec_t file, struct wim_lookup_table_entry *lte,
-                struct apply_ctx *ctx);
+                struct apply_ctx *ctx, struct wim_dentry *dentry);
 
        /* OPTIONAL:  Extracted named data stream.  In start_extract(), set
         * ctx->supported_features.alternate_data_streams if supported.  */
@@ -176,6 +177,11 @@ struct apply_operations {
        /* OPTIONAL:  Set to 1 if extract_encrypted_stream() must be used to
         * create encrypted files.  */
        unsigned extract_encrypted_stream_creates_file : 1;
+
+       /* OPTIONAL:  Set to 1 if a link to a file with corresponding short name
+        * must be created before all links to the same file without
+        * corresponding short names.  */
+       unsigned requires_short_name_reordering : 1;
 };
 
 struct wim_features {
@@ -205,20 +211,23 @@ struct apply_ctx {
        size_t target_nchars;
        wimlib_progress_func_t progress_func;
        union wimlib_progress_info progress;
-       struct wim_dentry *extract_root;
        const struct apply_operations *ops;
+       struct list_head stream_list;
        struct wim_features supported_features;
+       bool root_dentry_is_special;
        u32 supported_attributes_mask;
-       struct list_head stream_list;
+
+       struct wim_dentry *target_dentry;
        tchar *realtarget;
        size_t realtarget_nchars;
        unsigned long invalid_sequence;
        unsigned long partial_security_descriptors;
        unsigned long no_security_descriptors;
+       struct filedes tmpfile_fd;
+       tchar *tmpfile_name;
        u64 num_streams_remaining;
-       bool root_dentry_is_special;
        uint64_t next_progress;
-       intptr_t private[8];
+       intptr_t private[10];
 };
 
 #ifdef __WIN32__