13 #include "interface.h"
18 WdmAudInitUserModeMixer();
21 WdmAudGetWaveOutCount();
24 WdmAudGetWaveInCount();
27 WdmAudGetMixerCount();
30 WdmAudGetNumDevsByMMixer(
31 IN MMDEVICE_TYPE DeviceType
,
32 OUT DWORD
* DeviceCount
);
36 IN PSOUND_DEVICE_INSTANCE SoundDeviceInstance
,
39 IN PSOUND_OVERLAPPED Overlap
,
40 IN LPOVERLAPPED_COMPLETION_ROUTINE CompletionRoutine
);
43 WdmAudGetCapabilitiesByMMixer(
44 IN PSOUND_DEVICE SoundDevice
,
46 OUT PVOID Capabilities
,
47 IN DWORD CapabilitiesSize
);
50 WdmAudOpenSoundDeviceByMMixer(
51 IN
struct _SOUND_DEVICE
* SoundDevice
,
55 WdmAudCloseSoundDeviceByMMixer(
56 IN
struct _SOUND_DEVICE_INSTANCE
* SoundDeviceInstance
,
62 IN LPMIXERLINEW MixLine
,
66 WdmAudGetLineControls(
68 IN LPMIXERLINECONTROLSW MixControls
,
72 WdmAudSetControlDetails(
74 IN LPMIXERCONTROLDETAILS MixDetails
,
78 WdmAudGetControlDetails(
80 IN LPMIXERCONTROLDETAILS MixDetails
,
84 WdmAudSetWdmWaveDeviceFormatByMMixer(
85 IN PSOUND_DEVICE_INSTANCE Instance
,
87 IN PWAVEFORMATEX WaveFormat
,
88 IN DWORD WaveFormatSize
);
91 WdmAudGetDeviceInterfaceStringByMMixer(
92 IN MMDEVICE_TYPE DeviceType
,
95 IN DWORD InterfaceLength
,
96 OUT DWORD
* InterfaceSize
);
99 WdmAudSetMixerDeviceFormatByMMixer(
100 IN PSOUND_DEVICE_INSTANCE Instance
,
102 IN PWAVEFORMATEX WaveFormat
,
103 IN DWORD WaveFormatSize
);
106 WdmAudQueryMixerInfoByMMixer(
107 IN
struct _SOUND_DEVICE_INSTANCE
* SoundDeviceInstance
,
113 WdmAudSetWdmWaveStateByMMixer(
114 IN
struct _SOUND_DEVICE_INSTANCE
* SoundDeviceInstance
,
118 WdmAudResetStreamByMMixer(
119 IN
struct _SOUND_DEVICE_INSTANCE
* SoundDeviceInstance
,
120 IN MMDEVICE_TYPE DeviceType
,
121 IN BOOLEAN bStartReset
);
124 WdmAudGetWdmPositionByMMixer(
125 IN
struct _SOUND_DEVICE_INSTANCE
* SoundDeviceInstance
,
129 WdmAudCommitWaveBufferByMMixer(
130 IN PSOUND_DEVICE_INSTANCE SoundDeviceInstance
,
133 IN PSOUND_OVERLAPPED Overlap
,
134 IN LPOVERLAPPED_COMPLETION_ROUTINE CompletionRoutine
);
137 WdmAudCleanupMMixer();
142 WdmAudCleanupLegacy();
145 WdmAudGetCapabilitiesByLegacy(
146 IN PSOUND_DEVICE SoundDevice
,
148 OUT PVOID Capabilities
,
149 IN DWORD CapabilitiesSize
);
152 WdmAudOpenSoundDeviceByLegacy();
155 WdmAudCloseSoundDeviceByLegacy(
156 IN
struct _SOUND_DEVICE_INSTANCE
* SoundDeviceInstance
,
160 WdmAudGetDeviceInterfaceStringByLegacy(
161 IN MMDEVICE_TYPE DeviceType
,
164 IN DWORD InterfaceLength
,
165 OUT DWORD
* InterfaceSize
);
168 WdmAudSetMixerDeviceFormatByLegacy(
169 IN PSOUND_DEVICE_INSTANCE Instance
,
171 IN PWAVEFORMATEX WaveFormat
,
172 IN DWORD WaveFormatSize
);
175 WdmAudQueryMixerInfoByLegacy(
176 IN
struct _SOUND_DEVICE_INSTANCE
* SoundDeviceInstance
,
182 WdmAudSetWaveDeviceFormatByLegacy(
183 IN PSOUND_DEVICE_INSTANCE Instance
,
185 IN PWAVEFORMATEX WaveFormat
,
186 IN DWORD WaveFormatSize
);
189 WdmAudSetWaveStateByLegacy(
190 IN
struct _SOUND_DEVICE_INSTANCE
* SoundDeviceInstance
,
194 WdmAudResetStreamByLegacy(
195 IN
struct _SOUND_DEVICE_INSTANCE
* SoundDeviceInstance
,
196 IN MMDEVICE_TYPE DeviceType
,
197 IN BOOLEAN bStartReset
);
200 WdmAudGetWavePositionByLegacy(
201 IN
struct _SOUND_DEVICE_INSTANCE
* SoundDeviceInstance
,
205 WriteFileEx_Committer2(
206 IN PSOUND_DEVICE_INSTANCE SoundDeviceInstance
,
209 IN PSOUND_OVERLAPPED Overlap
,
210 IN LPOVERLAPPED_COMPLETION_ROUTINE CompletionRoutine
);
213 WdmAudGetNumWdmDevsByLegacy(
214 IN MMDEVICE_TYPE DeviceType
,
215 OUT DWORD
* DeviceCount
);
219 MixerEventThreadRoutine(