#include "wimlib/win32_common.h"
#include "wimlib/assert.h"
+#include "wimlib/blob_table.h"
#include "wimlib/error.h"
-#include "wimlib/lookup_table.h"
#include "wimlib/util.h"
#include "wimlib/wimboot.h"
#include "wimlib/win32.h"
*
* @h
* Open handle to the file, with GENERIC_WRITE access.
- * @lte
- * Unnamed data stream of the file.
+ * @blob
+ * The blob for the unnamed data stream of the file.
* @data_source_id
* Allocated identifier for the WIM data source on the destination volume.
- * @lookup_table_hash
- * SHA-1 message digest of the WIM's lookup table.
+ * @blob_table_hash
+ * SHA-1 message digest of the WIM's blob table.
* @wof_running
* %true if the WOF driver appears to be available and working; %false if
* not.
*/
bool
wimboot_set_pointer(HANDLE h,
- const struct wim_lookup_table_entry *lte,
+ const struct blob_descriptor *blob,
u64 data_source_id,
- const u8 lookup_table_hash[SHA1_HASH_SIZE],
+ const u8 blob_table_hash[SHA1_HASH_SIZE],
bool wof_running)
{
DWORD bytes_returned;
in.wim_info.version = WIM_PROVIDER_CURRENT_VERSION;
in.wim_info.flags = 0;
in.wim_info.data_source_id = data_source_id;
- copy_hash(in.wim_info.resource_hash, lte->hash);
+ copy_hash(in.wim_info.unnamed_data_stream_hash, blob->hash);
- /* lookup_table_hash is not necessary */
+ /* blob_table_hash is not necessary */
if (!DeviceIoControl(h, FSCTL_SET_EXTERNAL_BACKING,
&in, sizeof(in), NULL, 0,
in.wim_info.version = 2;
in.wim_info.flags = 0;
in.wim_info.data_source_id = data_source_id;
- copy_hash(in.wim_info.resource_hash, lte->hash);
- copy_hash(in.wim_info.wim_lookup_table_hash, lookup_table_hash);
- in.wim_info.stream_uncompressed_size = lte->size;
- in.wim_info.stream_compressed_size = lte->rspec->size_in_wim;
- in.wim_info.stream_offset_in_wim = lte->rspec->offset_in_wim;
+ copy_hash(in.wim_info.unnamed_data_stream_hash, blob->hash);
+ copy_hash(in.wim_info.blob_table_hash, blob_table_hash);
+ in.wim_info.unnamed_data_stream_size = blob->size;
+ in.wim_info.unnamed_data_stream_size_in_wim = blob->rdesc->size_in_wim;
+ in.wim_info.unnamed_data_stream_offset_in_wim = blob->rdesc->offset_in_wim;
if (!DeviceIoControl(h, FSCTL_SET_REPARSE_POINT,
&in, sizeof(in), NULL, 0, &bytes_returned, NULL))
return false;
if (!SetFilePointerEx(h,
- (LARGE_INTEGER){ .QuadPart = lte->size},
+ (LARGE_INTEGER){ .QuadPart = blob->size},
NULL, FILE_BEGIN))
return false;