1 #ifndef _WIMLIB_APPLY_H
2 #define _WIMLIB_APPLY_H
5 #include "wimlib/types.h"
14 /* Directory to which we're extracting the WIM image or directory tree,
15 * in user-specified form (may be slightly altered) */
17 unsigned target_nchars;
20 /* \\?\-prefixed full path to the above directory; needed to work around
21 * lack of default support for long paths on Windoze. */
22 tchar *target_lowlevel_path;
23 unsigned target_lowlevel_path_nchars;
26 /* Absolute path to the above directory; on UNIX this is simply a path
27 * beginning with /, while on Windoze this will be a path beginning with
28 * a drive letter followed by a backslash, but not with \\?\. */
29 tchar *target_realpath;
30 unsigned target_realpath_len;
32 struct wim_dentry *extract_root;
33 unsigned long invalid_sequence;
35 union wimlib_progress_info progress;
36 wimlib_progress_func_t progress_func;
37 int (*apply_dentry)(struct wim_dentry *, void *);
42 struct _ntfs_volume *vol;
47 /* Normal apply only (Win32) */
48 unsigned long num_set_sacl_priv_notheld;
49 unsigned long num_set_sd_access_denied;
51 unsigned long num_hard_links_failed;
52 unsigned long num_soft_links_failed;
53 unsigned long num_long_paths;
58 /* Normal apply only (UNIX) */
59 unsigned long num_utime_warnings;
67 apply_dentry_ntfs(struct wim_dentry *dentry, void *arg);
70 apply_dentry_timestamps_ntfs(struct wim_dentry *dentry, void *arg);
75 win32_do_apply_dentry(const tchar *output_path,
76 size_t output_path_nbytes,
77 struct wim_dentry *dentry,
78 struct apply_args *args);
81 win32_do_apply_dentry_timestamps(const tchar *output_path,
82 size_t output_path_nbytes,
83 struct wim_dentry *dentry,
84 struct apply_args *args);
87 unix_do_apply_dentry(const tchar *output_path, size_t output_path_nbytes,
88 struct wim_dentry *dentry, struct apply_args *args);
90 unix_do_apply_dentry_timestamps(const tchar *output_path,
91 size_t output_path_nbytes,
92 struct wim_dentry *dentry,
93 struct apply_args *args);
94 #endif /* !__WIN32__ */
96 /* Internal use only */
97 #define WIMLIB_EXTRACT_FLAG_MULTI_IMAGE 0x80000000
98 #define WIMLIB_EXTRACT_FLAG_NO_STREAMS 0x40000000
99 #define WIMLIB_EXTRACT_MASK_PUBLIC 0x3fffffff
102 #endif /* _WIMLIB_APPLY_H */