13 #include "interface.h"
18 WdmAudInitUserModeMixer(VOID
);
21 WdmAudGetWaveOutCount(VOID
);
24 WdmAudGetWaveInCount(VOID
);
27 WdmAudGetMixerCount(VOID
);
30 WdmAudGetNumWdmDevsByMMixer(
31 IN MMDEVICE_TYPE DeviceType
,
32 OUT DWORD
* DeviceCount
);
35 WdmAudCommitWaveBufferByLegacy(
36 IN PSOUND_DEVICE_INSTANCE SoundDeviceInstance
,
39 IN PSOUND_OVERLAPPED Overlap
,
40 IN LPOVERLAPPED_COMPLETION_ROUTINE CompletionRoutine
);
44 IN PSOUND_DEVICE_INSTANCE SoundDeviceInstance
,
47 IN PSOUND_OVERLAPPED Overlap
,
48 IN LPOVERLAPPED_COMPLETION_ROUTINE CompletionRoutine
);
51 WdmAudGetCapabilitiesByMMixer(
52 IN PSOUND_DEVICE SoundDevice
,
54 OUT PVOID Capabilities
,
55 IN DWORD CapabilitiesSize
);
58 WdmAudOpenSoundDeviceByMMixer(
59 IN
struct _SOUND_DEVICE
* SoundDevice
,
63 WdmAudCloseSoundDeviceByMMixer(
64 IN
struct _SOUND_DEVICE_INSTANCE
* SoundDeviceInstance
,
71 IN LPMIXERLINEW MixLine
,
75 WdmAudGetLineControls(
78 IN LPMIXERLINECONTROLSW MixControls
,
82 WdmAudSetControlDetails(
85 IN LPMIXERCONTROLDETAILS MixDetails
,
89 WdmAudGetControlDetails(
92 IN LPMIXERCONTROLDETAILS MixDetails
,
96 WdmAudSetWaveDeviceFormatByMMixer(
97 IN PSOUND_DEVICE_INSTANCE Instance
,
99 IN PWAVEFORMATEX WaveFormat
,
100 IN DWORD WaveFormatSize
);
103 WdmAudGetDeviceInterfaceStringByMMixer(
104 IN MMDEVICE_TYPE DeviceType
,
107 IN DWORD InterfaceLength
,
108 OUT DWORD
* InterfaceSize
);
111 WdmAudSetMixerDeviceFormatByMMixer(
112 IN PSOUND_DEVICE_INSTANCE Instance
,
114 IN PWAVEFORMATEX WaveFormat
,
115 IN DWORD WaveFormatSize
);
118 WdmAudQueryMixerInfoByMMixer(
119 IN
struct _SOUND_DEVICE_INSTANCE
* SoundDeviceInstance
,
126 WdmAudSetWaveStateByMMixer(
127 IN
struct _SOUND_DEVICE_INSTANCE
* SoundDeviceInstance
,
131 WdmAudResetStreamByMMixer(
132 IN
struct _SOUND_DEVICE_INSTANCE
* SoundDeviceInstance
,
133 IN MMDEVICE_TYPE DeviceType
,
134 IN BOOLEAN bStartReset
);
137 WdmAudGetWavePositionByMMixer(
138 IN
struct _SOUND_DEVICE_INSTANCE
* SoundDeviceInstance
,
142 WdmAudCommitWaveBufferByMMixer(
143 IN PSOUND_DEVICE_INSTANCE SoundDeviceInstance
,
146 IN PSOUND_OVERLAPPED Overlap
,
147 IN LPOVERLAPPED_COMPLETION_ROUTINE CompletionRoutine
);
150 WdmAudCleanupByMMixer(VOID
);
155 WdmAudCleanupByLegacy(VOID
);
158 WdmAudGetCapabilitiesByLegacy(
159 IN PSOUND_DEVICE SoundDevice
,
161 OUT PVOID Capabilities
,
162 IN DWORD CapabilitiesSize
);
165 WdmAudOpenSoundDeviceByLegacy(
166 IN PSOUND_DEVICE SoundDevice
,
171 WdmAudCloseSoundDeviceByLegacy(
172 IN
struct _SOUND_DEVICE_INSTANCE
* SoundDeviceInstance
,
176 WdmAudGetDeviceInterfaceStringByLegacy(
177 IN MMDEVICE_TYPE DeviceType
,
180 IN DWORD InterfaceLength
,
181 OUT DWORD
* InterfaceSize
);
184 WdmAudSetMixerDeviceFormatByLegacy(
185 IN PSOUND_DEVICE_INSTANCE Instance
,
187 IN PWAVEFORMATEX WaveFormat
,
188 IN DWORD WaveFormatSize
);
191 WdmAudQueryMixerInfoByLegacy(
192 IN
struct _SOUND_DEVICE_INSTANCE
* SoundDeviceInstance
,
199 WdmAudSetWaveDeviceFormatByLegacy(
200 IN PSOUND_DEVICE_INSTANCE Instance
,
202 IN PWAVEFORMATEX WaveFormat
,
203 IN DWORD WaveFormatSize
);
206 WdmAudSetWaveStateByLegacy(
207 IN
struct _SOUND_DEVICE_INSTANCE
* SoundDeviceInstance
,
211 WdmAudResetStreamByLegacy(
212 IN
struct _SOUND_DEVICE_INSTANCE
* SoundDeviceInstance
,
213 IN MMDEVICE_TYPE DeviceType
,
214 IN BOOLEAN bStartReset
);
217 WdmAudGetWavePositionByLegacy(
218 IN
struct _SOUND_DEVICE_INSTANCE
* SoundDeviceInstance
,
222 WriteFileEx_Committer2(
223 IN PSOUND_DEVICE_INSTANCE SoundDeviceInstance
,
226 IN PSOUND_OVERLAPPED Overlap
,
227 IN LPOVERLAPPED_COMPLETION_ROUTINE CompletionRoutine
);
230 WdmAudGetNumWdmDevsByLegacy(
231 IN MMDEVICE_TYPE DeviceType
,
232 OUT DWORD
* DeviceCount
);
236 MixerEventThreadRoutine(