From: Elizabeth Figura zfigura@codeweavers.com
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=48455 --- dlls/setupapi/queue.c | 22 ++++++---------------- 1 file changed, 6 insertions(+), 16 deletions(-)
diff --git a/dlls/setupapi/queue.c b/dlls/setupapi/queue.c index 6ee4e0af9e1..c54c1949cf2 100644 --- a/dlls/setupapi/queue.c +++ b/dlls/setupapi/queue.c @@ -293,9 +293,7 @@ UINT CALLBACK QUEUE_callback_WtoA( void *context, UINT notification, static void get_source_info( HINF hinf, const WCHAR *src_file, SP_FILE_COPY_PARAMS_W *params, WCHAR *src_root, WCHAR *src_path) { - INFCONTEXT disk_ctx; UINT diskid; - INT id; DWORD len;
if (!SetupGetSourceFileLocationW( hinf, NULL, src_file, &diskid, src_path, MAX_PATH, &len )) @@ -304,27 +302,19 @@ static void get_source_info( HINF hinf, const WCHAR *src_file, SP_FILE_COPY_PARA if (len > sizeof(WCHAR)) params->SourcePath = src_path;
- /* now find the diskid in the SourceDisksNames section */ - if (!SetupFindFirstLineW( hinf, L"SourceDisksNames", NULL, &disk_ctx )) return; - for (;;) - { - if (SetupGetIntField( &disk_ctx, 0, &id ) && (id == diskid)) break; - if (!SetupFindNextLine( &disk_ctx, &disk_ctx )) return; - } - - if (SetupGetStringFieldW( &disk_ctx, 1, NULL, 0, &len ) && len > sizeof(WCHAR) + if (SetupGetSourceInfoW( hinf, diskid, SRCINFO_DESCRIPTION, NULL, 0, &len ) && len > sizeof(WCHAR) && (params->SourceDescription = malloc( len * sizeof(WCHAR) ))) - SetupGetStringFieldW( &disk_ctx, 1, (WCHAR *)params->SourceDescription, len, NULL ); + SetupGetSourceInfoW( hinf, diskid, SRCINFO_DESCRIPTION, (WCHAR *)params->SourceDescription, len, NULL );
- if (SetupGetStringFieldW( &disk_ctx, 2, NULL, 0, &len ) && len > sizeof(WCHAR) + if (SetupGetSourceInfoW( hinf, diskid, SRCINFO_TAGFILE, NULL, 0, &len ) && len > sizeof(WCHAR) && (params->SourceTagfile = malloc( len * sizeof(WCHAR) ))) - SetupGetStringFieldW( &disk_ctx, 2, (WCHAR *)params->SourceTagfile, len, NULL ); + SetupGetSourceInfoW( hinf, diskid, SRCINFO_TAGFILE, (WCHAR *)params->SourceTagfile, len, NULL );
- if (SetupGetStringFieldW( &disk_ctx, 4, NULL, 0, &len ) && len > sizeof(WCHAR) + if (SetupGetSourceInfoW( hinf, diskid, SRCINFO_PATH, NULL, 0, &len ) && len > sizeof(WCHAR) && len < MAX_PATH - lstrlenW( src_root ) - 1) { lstrcatW( src_root, L"\" ); - SetupGetStringFieldW( &disk_ctx, 4, src_root + lstrlenW( src_root ), + SetupGetSourceInfoW( hinf, diskid, SRCINFO_PATH, src_root + lstrlenW( src_root ), MAX_PATH - lstrlenW( src_root ), NULL ); } }