+#ifdef __WIN32__
+ /* Root of a red-black tree storing the children of this inode, if any.
+ * Keyed by wim_dentry->file_name, case insensitively. */
+ struct rb_root i_children_case_insensitive;
+#endif
+
+ /* List of dentries that are aliases for this inode. There will be
+ * i_nlink dentries in this list. */
+ struct list_head i_dentry;
+
+ /* Field to place this inode into a list. */
+ union {
+ /* Hash list node- used in hardlink.c when the inodes are placed
+ * into a hash table keyed by inode number and optionally device
+ * number, in order to detect dentries that are aliases for the
+ * same inode. */
+ struct hlist_node i_hlist;
+
+ /* Normal list node- used to connect all the inodes of a WIM image
+ * into a single linked list referenced from the
+ * `struct wim_image_metadata' for that image. */
+ struct list_head i_list;
+ };
+
+ /* Number of dentries that are aliases for this inode. */
+ u32 i_nlink;
+
+ /* Number of alternate data streams (ADS) associated with this inode */
+ u16 i_num_ads;
+
+ /* Flag that indicates whether this inode's streams have been
+ * "resolved". By default, the inode starts as "unresolved", meaning
+ * that the i_hash field, along with the hash field of any associated
+ * wim_ads_entry's, are valid and should be used as keys in the WIM
+ * lookup table to find the associated `struct wim_lookup_table_entry'.
+ * But if the inode has been resolved, then each of these fields is
+ * replaced with a pointer directly to the appropriate `struct
+ * wim_lookup_table_entry', or NULL if the stream is empty. */