https://git.reactos.org/?p=reactos.git;a=commitdiff;h=8e850d19bceb0a73147ee0...
commit 8e850d19bceb0a73147ee09c282adeb10850358a Author: Eric Kohl eric.kohl@reactos.org AuthorDate: Sun Nov 5 09:39:44 2017 +0100
[SETUPAPI] GetDeviceInstanceKeyPath: Implement the CM_REGISTRY_SOFTWARE | CM_REGISTRY_CONFIG part. --- dll/win32/setupapi/cfgmgr.c | 31 ++++++++++++++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-)
diff --git a/dll/win32/setupapi/cfgmgr.c b/dll/win32/setupapi/cfgmgr.c index 362d34e14e..e67db054c9 100644 --- a/dll/win32/setupapi/cfgmgr.c +++ b/dll/win32/setupapi/cfgmgr.c @@ -210,7 +210,36 @@ GetDeviceInstanceKeyPath( if (ulFlags & CM_REGISTRY_SOFTWARE) { /* Software Key Path */ - ret = CR_CALL_NOT_IMPLEMENTED; + + if (ulFlags & CM_REGISTRY_CONFIG) + { + SplitDeviceInstanceId(pszDeviceInst, + pszBuffer, + pszInstancePath); + + if (ulHardwareProfile == 0) + { + wsprintfW(pszKeyPath, + L"%s\%s\%s\%s", + L"System\CurrentControlSet\Hardware Profiles", + L"Current", + L"System\CurrentControlSet\Control\Enum", + pszBuffer); + } + else + { + wsprintfW(pszKeyPath, + L"%s\%04lu\%s\%s", + L"System\CurrentControlSet\Hardware Profiles", + ulHardwareProfile, + L"System\CurrentControlSet\Control\Enum", + pszBuffer); + } + } + else + { + ret = CR_CALL_NOT_IMPLEMENTED; + } } else {