Module: wine Branch: master Commit: a9d74cf994d0a3853373799e9a1456a0b7a47bb8 URL: http://source.winehq.org/git/wine.git/?a=commit;h=a9d74cf994d0a3853373799e9a...
Author: Juan Lang juan.lang@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; + } }
/***********************************************************************