diff --git a/reactos/dll/cpl/mmsys/mmsys.c b/reactos/dll/cpl/mmsys/mmsys.c index 5161bcc1a3d..5ec70a4aaaf 100644 --- a/reactos/dll/cpl/mmsys/mmsys.c +++ b/reactos/dll/cpl/mmsys/mmsys.c @@ -165,6 +165,7 @@ MMSYS_InstallDevice(HDEVINFO hDevInfo, PSP_DEVINFO_DATA pspDevInfoData) HINF hInf; PVOID Context; BOOL Result; + SC_HANDLE hSCManager, hService; if (!IsEqualIID(&pspDevInfoData->ClassGuid, &GUID_DEVCLASS_SOUND) && !IsEqualIID(&pspDevInfoData->ClassGuid, &GUID_DEVCLASS_MEDIA)) @@ -223,6 +224,25 @@ MMSYS_InstallDevice(HDEVINFO hDevInfo, PSP_DEVINFO_DATA pspDevInfoData) SetupTermDefaultQueueCallback(Context); SetupCloseInfFile(hInf); + + + hSCManager = OpenSCManager(NULL, NULL, SC_MANAGER_CONNECT); + if (!hSCManager) + { + return ERROR_DI_DO_DEFAULT; + } + + hService = OpenService(hSCManager, L"RosAudioSrv", SERVICE_ALL_ACCESS); + if (hService) + { + /* make RosAudioSrv start automatically */ + ChangeServiceConfig(hService, SERVICE_NO_CHANGE, SERVICE_AUTO_START, SERVICE_NO_CHANGE, NULL, NULL, NULL, NULL, NULL, NULL, NULL); + + StartService(hService, 0, NULL); + CloseServiceHandle(hService); + } + CloseServiceHandle(hSCManager); + return ERROR_DI_DO_DEFAULT; }