4 #include <pseh/pseh2.h>
17 #include "interface.h"
22 SOUND_DEVICE_TYPE Type
;
25 }WDMAUD_HANDLE
, *PWDMAUD_HANDLE
;
32 WDMAUD_HANDLE
* hPins
;
34 }WDMAUD_CLIENT
, *PWDMAUD_CLIENT
;
40 }MIXERCONTROL_DATA
, *LPMIXERCONTROL_DATA
;
44 MIXERCONTROL_DATA Header
;
48 ULONG InputSteppingDelta
;
51 }MIXERVOLUME_DATA
, *LPMIXERVOLUME_DATA
;
61 LPMIXERCONTROLW LineControls
;
63 LIST_ENTRY LineControlsExtraData
;
64 }MIXERLINE_EXT
, *LPMIXERLINE_EXT
;
73 }MIXER_INFO
, *LPMIXER_INFO
;
87 }WAVE_INFO
, *LPWAVE_INFO
;
93 UNICODE_STRING SymbolicLink
;
94 }SYSAUDIO_ENTRY
, *PSYSAUDIO_ENTRY
;
98 KSDEVICE_HEADER DeviceHeader
;
99 PVOID SysAudioNotification
;
101 BOOL DeviceInterfaceSupport
;
104 ULONG NumSysAudioDevices
;
105 LIST_ENTRY SysAudioDeviceList
;
107 PFILE_OBJECT FileObject
;
109 ULONG MixerInfoCount
;
110 LPMIXER_INFO MixerInfo
;
112 ULONG WaveInDeviceCount
;
113 LIST_ENTRY WaveInList
;
115 ULONG WaveOutDeviceCount
;
116 LIST_ENTRY WaveOutList
;
119 }WDMAUD_DEVICE_EXTENSION
, *PWDMAUD_DEVICE_EXTENSION
;
124 IN PWDMAUD_DEVICE_EXTENSION DeviceExtension
,
127 IN LPWAVEFORMATEX WaveFormatEx
,
128 IN ACCESS_MASK DesiredAccess
,
129 OUT PHANDLE PinHandle
);
132 WdmAudRegisterDeviceInterface(
133 IN PDEVICE_OBJECT PhysicalDeviceObject
,
134 IN PWDMAUD_DEVICE_EXTENSION DeviceExtension
);
137 WdmAudOpenSysAudioDevices(
138 IN PDEVICE_OBJECT DeviceObject
,
139 IN PWDMAUD_DEVICE_EXTENSION DeviceExtension
);
143 IN PDEVICE_OBJECT DeviceObject
,
144 IN PWDMAUD_CLIENT
*pClient
);
149 IN PDEVICE_OBJECT DeviceObject
,
155 IN PDEVICE_OBJECT DeviceObject
,
161 IN PDEVICE_OBJECT DeviceObject
,
165 WdmAudControlOpenMixer(
166 IN PDEVICE_OBJECT DeviceObject
,
168 IN PWDMAUD_DEVICE_INFO DeviceInfo
,
169 IN PWDMAUD_CLIENT ClientInfo
);
172 WdmAudControlOpenWave(
173 IN PDEVICE_OBJECT DeviceObject
,
175 IN PWDMAUD_DEVICE_INFO DeviceInfo
,
176 IN PWDMAUD_CLIENT ClientInfo
);
180 GetNumOfMixerDevices(
181 IN PDEVICE_OBJECT DeviceObject
);
190 WdmAudOpenSysAudioDevice(
191 IN LPWSTR DeviceName
,
197 IN ULONG ProductNameSize
,
198 OUT LPWSTR ProductName
);
201 WdmAudMixerCapabilities(
202 IN PDEVICE_OBJECT DeviceObject
,
203 IN PWDMAUD_DEVICE_INFO DeviceInfo
,
204 IN PWDMAUD_CLIENT ClientInfo
,
205 IN PWDMAUD_DEVICE_EXTENSION DeviceExtension
);
208 WdmAudWaveCapabilities(
209 IN PDEVICE_OBJECT DeviceObject
,
210 IN PWDMAUD_DEVICE_INFO DeviceInfo
,
211 IN PWDMAUD_CLIENT ClientInfo
,
212 IN PWDMAUD_DEVICE_EXTENSION DeviceExtension
);
217 IN PDEVICE_OBJECT DeviceObject
,
219 IN PWDMAUD_DEVICE_INFO DeviceInfo
,
220 IN PWDMAUD_CLIENT ClientInfo
);
225 IN PDEVICE_OBJECT DeviceObject
,
227 IN PWDMAUD_DEVICE_INFO DeviceInfo
,
228 IN PWDMAUD_CLIENT ClientInfo
);
232 WdmAudGetLineControls(
233 IN PDEVICE_OBJECT DeviceObject
,
235 IN PWDMAUD_DEVICE_INFO DeviceInfo
,
236 IN PWDMAUD_CLIENT ClientInfo
);
240 WdmAudSetControlDetails(
241 IN PDEVICE_OBJECT DeviceObject
,
243 IN PWDMAUD_DEVICE_INFO DeviceInfo
,
244 IN PWDMAUD_CLIENT ClientInfo
);
248 WdmAudGetControlDetails(
249 IN PDEVICE_OBJECT DeviceObject
,
251 IN PWDMAUD_DEVICE_INFO DeviceInfo
,
252 IN PWDMAUD_CLIENT ClientInfo
);
255 WdmAudMixerInitialize(
256 IN PDEVICE_OBJECT DeviceObject
);
260 WdmAudWaveInitialize(
261 IN PDEVICE_OBJECT DeviceObject
);
265 IN PWDMAUD_CLIENT ClientInfo
,
268 IN SOUND_DEVICE_TYPE DeviceType
);
272 IN PWDMAUD_CLIENT ClientInfo
,
275 IN SOUND_DEVICE_TYPE DeviceType
,