setupapi: Respect samDesired in SetupDiOpenClassRegKeyExW.

This commit is contained in:
Juan Lang 2007-09-21 11:32:24 -07:00 committed by Alexandre Julliard
parent 243ac3ed75
commit a9d74cf994

View file

@ -2337,7 +2337,6 @@ HKEY WINAPI SetupDiOpenClassRegKeyExW(
PCWSTR MachineName, PCWSTR MachineName,
PVOID Reserved) PVOID Reserved)
{ {
WCHAR bracedGuidString[39];
HKEY hClassesKey; HKEY hClassesKey;
HKEY hClassKey; HKEY hClassKey;
LPCWSTR lpKeyName; LPCWSTR lpKeyName;
@ -2363,33 +2362,46 @@ HKEY WINAPI SetupDiOpenClassRegKeyExW(
return INVALID_HANDLE_VALUE; return INVALID_HANDLE_VALUE;
} }
if (RegOpenKeyExW(HKEY_LOCAL_MACHINE, if (!ClassGuid)
lpKeyName,
0,
KEY_ALL_ACCESS,
&hClassesKey))
{ {
return INVALID_HANDLE_VALUE; if (RegOpenKeyExW(HKEY_LOCAL_MACHINE,
} lpKeyName,
0,
if (ClassGuid == NULL) samDesired,
&hClassesKey))
{
return INVALID_HANDLE_VALUE;
}
return hClassesKey; return hClassesKey;
SETUPDI_GuidToString(ClassGuid, bracedGuidString);
if (RegOpenKeyExW(hClassesKey,
bracedGuidString,
0,
KEY_ALL_ACCESS,
&hClassKey))
{
RegCloseKey(hClassesKey);
return INVALID_HANDLE_VALUE;
} }
else
{
WCHAR bracedGuidString[39];
RegCloseKey(hClassesKey); SETUPDI_GuidToString(ClassGuid, bracedGuidString);
return hClassKey; if (RegOpenKeyExW(HKEY_LOCAL_MACHINE,
lpKeyName,
0,
samDesired,
&hClassesKey))
{
return INVALID_HANDLE_VALUE;
}
if (RegOpenKeyExW(hClassesKey,
bracedGuidString,
0,
samDesired,
&hClassKey))
{
RegCloseKey(hClassesKey);
return INVALID_HANDLE_VALUE;
}
RegCloseKey(hClassesKey);
return hClassKey;
}
} }
/*********************************************************************** /***********************************************************************