]> wimlib.net Git - wimlib/blobdiff - src/lookup_table.h
Win32 fixes
[wimlib] / src / lookup_table.h
index 699e16ec7ad78ef915cf183a1c9f2530ba86b9a7..accc7324faaf93b2f6912c2a834b9407c5294192 100644 (file)
 #define LOOKUP_FLAG_ADS_OK             0x00000001
 #define LOOKUP_FLAG_DIRECTORY_OK       0x00000002
 
+#ifdef __WIN32__
+#include <windef.h>
+#endif
+
 
 /* The lookup table of a WIM file maps SHA1 message digests to streams of data.
  * Here, the in-memory structure is implemented as a hash table.
@@ -32,9 +36,9 @@ struct wim_lookup_table {
 
 #ifdef WITH_NTFS_3G
 struct ntfs_location {
-       utf8char *path_utf8;
-       utf16lechar *stream_name_utf16;
-       u16 stream_name_utf16_num_chars;
+       mbchar *path;
+       utf16lechar *stream_name;
+       u16 stream_name_nchars;
        struct _ntfs_volume **ntfs_vol_p;
        bool is_reparse_point;
 };
@@ -159,6 +163,9 @@ struct wim_lookup_table_entry {
                WIMStruct *wim;
                mbchar *file_on_disk;
                mbchar *staging_file_name;
+       #ifdef __WIN32__
+               wchar_t *win32_file_on_disk;
+       #endif
                u8 *attached_buffer;
        #ifdef WITH_NTFS_3G
                struct ntfs_location *ntfs_loc;
@@ -168,6 +175,7 @@ struct wim_lookup_table_entry {
                /* @file_on_disk_fp and @attr are both used to cache file/stream
                 * handles so we don't have re-open them on every read */
 
+
                /* Valid iff resource_location == RESOURCE_IN_FILE_ON_DISK */
                FILE *file_on_disk_fp;
        #ifdef WITH_NTFS_3G
@@ -175,6 +183,8 @@ struct wim_lookup_table_entry {
                struct _ntfs_attr *attr;
        #endif
 
+               HANDLE win32_file_on_disk_fp;
+
                /* Pointer to inode that contains the opened file descriptors to
                 * this stream (valid iff resource_location ==
                 * RESOURCE_IN_STAGING_FILE) */