7d3fa23ef136bc7187b475d26315ac3ced88e1c2
[reactos.git] / base / services / audiosrv / audiosrv.txt
1 ReactOS Audio Service (audiosrv.exe)
2 ====================================
3
4 This is intended to operate in a similar manner to how the Windows Audio
5 Service does.
6
7 NOTE: The service filename is audiosrv.dll on Windows XP. This shouldn't
8 have any impact on functionality.
9
10 AudioSrv on Windows creates a mapped file at:
11 Global\mmGlobalPnpInfo
12
13 The ReactOS audio device list lives at:
14 Global\AudioDeviceList
15
16 This file appears to contain a list of devices that WinMM accesses and
17 subsequently passes to wdmaud.drv
18
19 It is not necessary to duplicate the exact structure of this mapped
20 file, since it appears to only be used internally by Windows components.
21
22 The ROS Audio Service (RosAudioSrv) is intended to be able to run
23 alongside the Windows Audio Service on XP/Vista, so it should be
24 possible to test in a "known working environment" ;)
25
26 It will create a mutex, to:
27 1) Allow synchronization when accessing the device list
28 2) Provide a simple method of identifying if RosAudioSrv is running
29
30 (It might be worth using an event to notify WinMM when things are
31 happening?)
32
33 The intention is to make RosAudioSrv receive PnP notifications for
34 relevant audio devices, and also let AudioSrv in Windows do this. Then
35 it should be possible to create a small application that imitates
36 WinMM's actions :)
37
38
39 Current Status
40 ==============
41
42 AudioSrv registers for device notifications and obtains a list of the
43 current audio devices in the system (devices registered against the
44 KSCATEGORY_AUDIO interface).
45
46 ReactOS does not currently have RegisterDeviceNotification implemented,
47 so for the moment this service considers the failure of this API call
48 to be non-fatal and will proceed without device event notification. This
49 behaviour will be amended in a future revision (ie once this API call
50 is implemented!)
51
52
53 Testing the Service
54 ===================
55
56 The service can be installed on Windows XP (possibly also Vista) like so:
57 sc create RosAudioSrv <path to audiosrv.exe>
58 net start RosAudioSrv
59
60 ...and can be removed like so:
61 net stop RosAudioSrv
62 sc delete RosAudioSrv
63
64 You can view a list of the currently available devices (device list is
65 identical to the one offered by Windows' own AudioSrv) by running
66 my READER.EXE test utility, available in the following package:
67
68 http://stuff.silverblade.co.uk/reactos/sharedlist.tar.gz
69
70 That's all for now, folks ;)
71
72
73 Andrew Greenwood
74 September 2007