mirror of
https://github.com/reactos/reactos.git
synced 2024-11-09 08:08:38 +00:00
527f2f9057
* Create a branch for some evul shell experiments. svn path=/branches/shell-experiments/; revision=61927
74 lines
2.3 KiB
Text
74 lines
2.3 KiB
Text
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 (RosAudioSrv) 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 RosAudioSrv is running
|
|
|
|
(It might be worth using an event to notify WinMM when things are
|
|
happening?)
|
|
|
|
The intention is to make RosAudioSrv 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 RosAudioSrv <path to audiosrv.exe>
|
|
net start RosAudioSrv
|
|
|
|
...and can be removed like so:
|
|
net stop RosAudioSrv
|
|
sc delete RosAudioSrv
|
|
|
|
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
|