+static int
+winnt_load_encrypted_stream_info(struct wim_inode *inode, const wchar_t *nt_path,
+ struct list_head *unhashed_streams)
+{
+ struct wim_lookup_table_entry *lte = new_lookup_table_entry();
+ int ret;
+
+ if (unlikely(!lte))
+ return WIMLIB_ERR_NOMEM;
+
+ lte->file_on_disk = WCSDUP(nt_path);
+ if (unlikely(!lte->file_on_disk)) {
+ free_lookup_table_entry(lte);
+ return WIMLIB_ERR_NOMEM;
+ }
+ lte->resource_location = RESOURCE_WIN32_ENCRYPTED;
+
+ /* OpenEncryptedFileRaw() expects a Win32 name. */
+ wimlib_assert(!wmemcmp(lte->file_on_disk, L"\\??\\", 4));
+ lte->file_on_disk[1] = L'\\';
+
+ ret = win32_get_encrypted_file_size(lte->file_on_disk, <e->size);
+ if (unlikely(ret)) {
+ free_lookup_table_entry(lte);
+ return ret;
+ }
+
+ lte->file_inode = inode;
+ add_unhashed_stream(lte, inode, 0, unhashed_streams);
+ inode->i_lte = lte;
+ return 0;
+}
+