+struct apply_args {
+ WIMStruct *w;
+ const tchar *target;
+ int extract_flags;
+ union wimlib_progress_info progress;
+ wimlib_progress_func_t progress_func;
+ int (*apply_dentry)(struct wim_dentry *, void *);
+ union {
+ #ifdef WITH_NTFS_3G
+ struct {
+ /* NTFS apply only */
+ struct _ntfs_volume *vol;
+ };
+ #endif
+ struct {
+ /* Normal apply only (UNIX) */
+ unsigned long num_utime_warnings;
+ };
+
+ struct {
+ /* Normal apply only (Win32) */
+ unsigned long num_set_sacl_priv_notheld;
+ unsigned long num_set_sd_access_denied;
+ };
+ };
+};
+
+extern int
+apply_dentry_ntfs(struct wim_dentry *dentry, void *arg);
+
+extern int
+apply_dentry_timestamps_ntfs(struct wim_dentry *dentry, void *arg);
+
+extern void
+libntfs3g_global_init();
+
+/* ntfs-capture.c */
+
+/* The types of these two callbacks are intentionally the same. */
+typedef int (*consume_data_callback_t)(const void *buf, size_t len, void *ctx);
+
+extern int
+read_ntfs_file_prefix(const struct wim_lookup_table_entry *lte,
+ u64 size,
+ consume_data_callback_t cb,
+ void *ctx_or_buf,
+ int _ignored_flags);
+extern int
+build_dentry_tree_ntfs(struct wim_dentry **root_p,
+ const tchar *device,
+ struct wim_lookup_table *lookup_table,
+ struct wim_inode_table *inode_table,
+ struct sd_set *sd_set,
+ const struct wimlib_capture_config *config,
+ int add_image_flags,
+ wimlib_progress_func_t progress_func,
+ void *extra_arg);
+
+/* resource.c */
+
+#define WIMLIB_RESOURCE_FLAG_RAW 0x1
+#define WIMLIB_RESOURCE_FLAG_MULTITHREADED 0x2
+#define WIMLIB_RESOURCE_FLAG_RECOMPRESS 0x4
+
+extern int
+read_resource_prefix(const struct wim_lookup_table_entry *lte,
+ u64 size, consume_data_callback_t cb, void *ctx_or_buf,
+ int flags);