Juan Lang : setupapi: Respect samDesired in SetupDiOpenClassRegKeyExW.
Alexandre Julliard
julliard at winehq.org
Mon Sep 24 08:07:59 CDT 2007
Module: wine
Branch: master
Commit: a9d74cf994d0a3853373799e9a1456a0b7a47bb8
URL: http://source.winehq.org/git/wine.git/?a=commit;h=a9d74cf994d0a3853373799e9a1456a0b7a47bb8
Author: Juan Lang <juan.lang at gmail.com>
Date: Fri Sep 21 11:32:24 2007 -0700
setupapi: Respect samDesired in SetupDiOpenClassRegKeyExW.
---
dlls/setupapi/devinst.c | 56 ++++++++++++++++++++++++++++------------------
1 files changed, 34 insertions(+), 22 deletions(-)
diff --git a/dlls/setupapi/devinst.c b/dlls/setupapi/devinst.c
index bc51c2a..a91b120 100644
--- a/dlls/setupapi/devinst.c
+++ b/dlls/setupapi/devinst.c
@@ -2337,7 +2337,6 @@ HKEY WINAPI SetupDiOpenClassRegKeyExW(
PCWSTR MachineName,
PVOID Reserved)
{
- WCHAR bracedGuidString[39];
HKEY hClassesKey;
HKEY hClassKey;
LPCWSTR lpKeyName;
@@ -2363,33 +2362,46 @@ HKEY WINAPI SetupDiOpenClassRegKeyExW(
return INVALID_HANDLE_VALUE;
}
- if (RegOpenKeyExW(HKEY_LOCAL_MACHINE,
- lpKeyName,
- 0,
- KEY_ALL_ACCESS,
- &hClassesKey))
+ if (!ClassGuid)
{
- return INVALID_HANDLE_VALUE;
- }
-
- if (ClassGuid == NULL)
+ if (RegOpenKeyExW(HKEY_LOCAL_MACHINE,
+ lpKeyName,
+ 0,
+ samDesired,
+ &hClassesKey))
+ {
+ return INVALID_HANDLE_VALUE;
+ }
return hClassesKey;
+ }
+ else
+ {
+ WCHAR bracedGuidString[39];
- SETUPDI_GuidToString(ClassGuid, bracedGuidString);
+ SETUPDI_GuidToString(ClassGuid, bracedGuidString);
- if (RegOpenKeyExW(hClassesKey,
- bracedGuidString,
- 0,
- KEY_ALL_ACCESS,
- &hClassKey))
- {
- RegCloseKey(hClassesKey);
- return INVALID_HANDLE_VALUE;
- }
+ 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);
+ RegCloseKey(hClassesKey);
- return hClassKey;
+ return hClassKey;
+ }
}
/***********************************************************************
More information about the wine-cvs
mailing list