X-Git-Url: https://wimlib.net/git/?a=blobdiff_plain;f=include%2Fwimlib%2Fapply.h;h=11a0365135e5c7157159edd73e4ce8473b348eee;hb=6c7b1783191ffe324953aad63735843feda9f901;hp=ef623a6f2652a8fe0cbc5b9f3577dcf9e36892f2;hpb=fd0584f6e32ed9ef19899b29d5f9aa6f4d9432f3;p=wimlib diff --git a/include/wimlib/apply.h b/include/wimlib/apply.h index ef623a6f..11a03651 100644 --- a/include/wimlib/apply.h +++ b/include/wimlib/apply.h @@ -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" @@ -83,7 +84,7 @@ struct apply_operations { /* OPTIONAL: Extracted encrypted stream. In start_extract(), set * ctx->supported_features.encrypted_files if supported. */ int (*extract_encrypted_stream) - (file_spec_t file, struct wim_lookup_table_entry *lte, + (const tchar *path, struct wim_lookup_table_entry *lte, struct apply_ctx *ctx); /* OPTIONAL: Set file attributes. Calling code calls this if non-NULL. @@ -172,6 +173,15 @@ struct apply_operations { /* OPTIONAL: Set to 1 if set_file_attributes() needs to be called a * second time towards the end of the extraction. */ unsigned requires_final_set_attributes_pass : 1; + + /* 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 { @@ -211,6 +221,8 @@ struct apply_ctx { 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;