From 77c67054c7207644ebe9122d4c6b5261469a1b6c Mon Sep 17 00:00:00 2001 From: Johannes Anderwald Date: Sun, 25 Oct 2009 18:22:03 +0000 Subject: [PATCH] - Make sure that no duplicate wdmaud.drv audio drivers exists as winmm currently not recognizes duplicate audio driver entries svn path=/trunk/; revision=43748 --- reactos/dll/cpl/mmsys/mmsys.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/reactos/dll/cpl/mmsys/mmsys.c b/reactos/dll/cpl/mmsys/mmsys.c index 1b4c81c44a2..6e765608f5d 100644 --- a/reactos/dll/cpl/mmsys/mmsys.c +++ b/reactos/dll/cpl/mmsys/mmsys.c @@ -435,7 +435,26 @@ MMSYS_InstallDevice(HDEVINFO hDevInfo, PSP_DEVINFO_DATA pspDevInfoData) swprintf(WaveName, L"wave%u", Index); if (RegQueryValueExW(hKey, WaveName, 0, NULL, NULL, &BufferSize) != ERROR_MORE_DATA) { + /* Store new audio driver entry */ RegSetValueExW(hKey, WaveName, 0, REG_SZ, (LPBYTE)szBuffer, (wcslen(szBuffer)+1) * sizeof(WCHAR)); + break; + } + else + { + WCHAR Buffer[MAX_PATH]; + BufferSize = sizeof(Buffer); + + if (RegQueryValueExW(hKey, WaveName, 0, NULL, (LPBYTE)Buffer, &BufferSize) == ERROR_SUCCESS) + { + /* Make sure the buffer is zero terminated */ + Buffer[MAX_PATH-1] = L'\0'; + + if (!wcsicmp(Buffer, szBuffer)) + { + /* an entry already exists */ + break; + } + } } } RegCloseKey(hKey); -- 2.17.1