mirror of
https://github.com/reactos/reactos.git
synced 2024-09-01 00:03:39 +00:00
![Oleg Dubinskiy](/assets/img/avatar_default.png)
Rename RosAudioSrv to AudioSrv in audio service itself and in all system components which are related to this, same as it done in Win2k3. It allows MS DxDiag to detect the system audio service correctly, so it becomes possible to run DirectSound test properly with MS dsound.dll, although it works with some minor errors and only in older VirtualBox versions, ~ up to 5.1.38 (and in other emulators as well). CORE-16307
75 lines
2.3 KiB
Plaintext
75 lines
2.3 KiB
Plaintext
ReactOS Audio Service (audiosrv.exe)
|
|
====================================
|
|
|
|
This is intended to operate in a similar manner to how the Windows Audio
|
|
Service does.
|
|
|
|
NOTE: The service filename is audiosrv.dll on Windows XP. This shouldn't
|
|
have any impact on functionality.
|
|
|
|
AudioSrv on Windows creates a mapped file at:
|
|
Global\mmGlobalPnpInfo
|
|
|
|
The ReactOS audio device list lives at:
|
|
Global\AudioDeviceList
|
|
|
|
This file appears to contain a list of devices that WinMM accesses and
|
|
subsequently passes to wdmaud.drv
|
|
|
|
It is not necessary to duplicate the exact structure of this mapped
|
|
file, since it appears to only be used internally by Windows components.
|
|
|
|
The ROS Audio Service (AudioSrv) is intended to be able to run
|
|
alongside the Windows Audio Service on XP/Vista, so it should be
|
|
possible to test in a "known working environment" ;)
|
|
|
|
It will create a mutex, to:
|
|
1) Allow synchronization when accessing the device list
|
|
2) Provide a simple method of identifying if AudioSrv is running
|
|
|
|
(It might be worth using an event to notify WinMM when things are
|
|
happening?)
|
|
|
|
The intention is to make AudioSrv receive PnP notifications for
|
|
relevant audio devices, and also let AudioSrv in Windows do this. Then
|
|
it should be possible to create a small application that imitates
|
|
WinMM's actions :)
|
|
|
|
|
|
Current Status
|
|
==============
|
|
|
|
AudioSrv registers for device notifications and obtains a list of the
|
|
current audio devices in the system (devices registered against the
|
|
KSCATEGORY_AUDIO interface).
|
|
|
|
ReactOS does not currently have RegisterDeviceNotification implemented,
|
|
so for the moment this service considers the failure of this API call
|
|
to be non-fatal and will proceed without device event notification. This
|
|
behaviour will be amended in a future revision (ie once this API call
|
|
is implemented!)
|
|
|
|
|
|
Testing the Service
|
|
===================
|
|
|
|
The service can be installed on Windows XP (possibly also Vista) like so:
|
|
sc create AudioSrv <path to audiosrv.exe>
|
|
net start AudioSrv
|
|
|
|
...and can be removed like so:
|
|
net stop AudioSrv
|
|
sc delete AudioSrv
|
|
|
|
You can view a list of the currently available devices (device list is
|
|
identical to the one offered by Windows' own AudioSrv) by running
|
|
my READER.EXE test utility, available in the following package:
|
|
|
|
http://stuff.silverblade.co.uk/reactos/sharedlist.tar.gz
|
|
|
|
That's all for now, folks ;)
|
|
|
|
|
|
Andrew Greenwood
|
|
September 2007
|