Skip to content
Snippets Groups Projects
Commit 94515450 authored by James Hawkins's avatar James Hawkins Committed by Alexandre Julliard
Browse files

setupapi: Handle the INFINFO_REVERSE_DEFAULT_SEARCH search flag.

parent 202942de
No related branches found
No related tags found
No related merge requests found
......@@ -60,6 +60,36 @@ static BOOL fill_inf_info(HINF inf, PSP_INF_INFORMATION buffer, DWORD size, DWOR
return TRUE;
}
static HINF search_for_inf(LPCVOID InfSpec, DWORD SearchControl)
{
HINF hInf = INVALID_HANDLE_VALUE;
WCHAR inf_path[MAX_PATH];
static const WCHAR infW[] = {'\\','i','n','f','\\',0};
static const WCHAR system32W[] = {'\\','s','y','s','t','e','m','3','2','\\',0};
if (SearchControl == INFINFO_REVERSE_DEFAULT_SEARCH)
{
GetWindowsDirectoryW(inf_path, MAX_PATH);
lstrcatW(inf_path, system32W);
lstrcatW(inf_path, InfSpec);
hInf = SetupOpenInfFileW(inf_path, NULL,
INF_STYLE_OLDNT | INF_STYLE_WIN4, NULL);
if (hInf != INVALID_HANDLE_VALUE)
return hInf;
GetWindowsDirectoryW(inf_path, MAX_PATH);
lstrcpyW(inf_path, infW);
lstrcatW(inf_path, InfSpec);
return SetupOpenInfFileW(inf_path, NULL,
INF_STYLE_OLDNT | INF_STYLE_WIN4, NULL);
}
return INVALID_HANDLE_VALUE;
}
/***********************************************************************
* SetupGetInfInformationA (SETUPAPI.@)
*
......@@ -131,6 +161,8 @@ BOOL WINAPI SetupGetInfInformationW(LPCVOID InfSpec, DWORD SearchControl,
INF_STYLE_OLDNT | INF_STYLE_WIN4, NULL);
break;
case INFINFO_REVERSE_DEFAULT_SEARCH:
inf = search_for_inf(InfSpec, SearchControl);
break;
case INFINFO_INF_PATH_LIST_SEARCH:
FIXME("Unhandled search control: %ld\n", SearchControl);
......
......@@ -231,11 +231,8 @@ static void test_SetupGetInfInformation(void)
/* test the INFINFO_REVERSE_DEFAULT_SEARCH search flag */
ret = pSetupGetInfInformationA("test.inf", INFINFO_REVERSE_DEFAULT_SEARCH, info, size, &size);
todo_wine
{
ok(ret == TRUE, "Expected SetupGetInfInformation to succeed\n");
ok(check_info_filename(info, inf_two), "Expected returned filename to be equal\n");
}
ok(ret == TRUE, "Expected SetupGetInfInformation to succeed\n");
ok(check_info_filename(info, inf_two), "Expected returned filename to be equal\n");
DeleteFileA(inf_filename);
DeleteFileA(inf_one);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment