setupapi: Set last error on failure in SetupDiOpenClassRegKeyExW.
This commit is contained in:
parent
a9d74cf994
commit
9b1e1b2aad
|
@ -2338,8 +2338,9 @@ HKEY WINAPI SetupDiOpenClassRegKeyExW(
|
||||||
PVOID Reserved)
|
PVOID Reserved)
|
||||||
{
|
{
|
||||||
HKEY hClassesKey;
|
HKEY hClassesKey;
|
||||||
HKEY hClassKey;
|
HKEY key;
|
||||||
LPCWSTR lpKeyName;
|
LPCWSTR lpKeyName;
|
||||||
|
LONG l;
|
||||||
|
|
||||||
if (MachineName != NULL)
|
if (MachineName != NULL)
|
||||||
{
|
{
|
||||||
|
@ -2364,15 +2365,16 @@ HKEY WINAPI SetupDiOpenClassRegKeyExW(
|
||||||
|
|
||||||
if (!ClassGuid)
|
if (!ClassGuid)
|
||||||
{
|
{
|
||||||
if (RegOpenKeyExW(HKEY_LOCAL_MACHINE,
|
if ((l = RegOpenKeyExW(HKEY_LOCAL_MACHINE,
|
||||||
lpKeyName,
|
lpKeyName,
|
||||||
0,
|
0,
|
||||||
samDesired,
|
samDesired,
|
||||||
&hClassesKey))
|
&hClassesKey)))
|
||||||
{
|
{
|
||||||
return INVALID_HANDLE_VALUE;
|
SetLastError(l);
|
||||||
|
hClassesKey = INVALID_HANDLE_VALUE;
|
||||||
}
|
}
|
||||||
return hClassesKey;
|
key = hClassesKey;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -2380,28 +2382,30 @@ HKEY WINAPI SetupDiOpenClassRegKeyExW(
|
||||||
|
|
||||||
SETUPDI_GuidToString(ClassGuid, bracedGuidString);
|
SETUPDI_GuidToString(ClassGuid, bracedGuidString);
|
||||||
|
|
||||||
if (RegOpenKeyExW(HKEY_LOCAL_MACHINE,
|
if (!(l = RegOpenKeyExW(HKEY_LOCAL_MACHINE,
|
||||||
lpKeyName,
|
lpKeyName,
|
||||||
0,
|
0,
|
||||||
samDesired,
|
samDesired,
|
||||||
&hClassesKey))
|
&hClassesKey)))
|
||||||
{
|
|
||||||
return INVALID_HANDLE_VALUE;
|
|
||||||
}
|
|
||||||
if (RegOpenKeyExW(hClassesKey,
|
|
||||||
bracedGuidString,
|
|
||||||
0,
|
|
||||||
samDesired,
|
|
||||||
&hClassKey))
|
|
||||||
{
|
{
|
||||||
|
if ((l = RegOpenKeyExW(hClassesKey,
|
||||||
|
bracedGuidString,
|
||||||
|
0,
|
||||||
|
samDesired,
|
||||||
|
&key)))
|
||||||
|
{
|
||||||
|
SetLastError(l);
|
||||||
|
key = INVALID_HANDLE_VALUE;
|
||||||
|
}
|
||||||
RegCloseKey(hClassesKey);
|
RegCloseKey(hClassesKey);
|
||||||
return INVALID_HANDLE_VALUE;
|
|
||||||
}
|
}
|
||||||
|
else
|
||||||
RegCloseKey(hClassesKey);
|
{
|
||||||
|
SetLastError(l);
|
||||||
return hClassKey;
|
key = INVALID_HANDLE_VALUE;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
return key;
|
||||||
}
|
}
|
||||||
|
|
||||||
/***********************************************************************
|
/***********************************************************************
|
||||||
|
|
Loading…
Reference in New Issue