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
;
42 LPMIXERCONTROLW LineControls
;
44 }MIXERLINE_EXT
, *LPMIXERLINE_EXT
;
53 }MIXER_INFO
, *LPMIXER_INFO
;
67 }WAVE_INFO
, *LPWAVE_INFO
;
73 UNICODE_STRING SymbolicLink
;
74 }SYSAUDIO_ENTRY
, *PSYSAUDIO_ENTRY
;
78 KSDEVICE_HEADER DeviceHeader
;
79 PVOID SysAudioNotification
;
81 BOOL DeviceInterfaceSupport
;
84 ULONG NumSysAudioDevices
;
85 LIST_ENTRY SysAudioDeviceList
;
87 PFILE_OBJECT FileObject
;
90 LPMIXER_INFO MixerInfo
;
92 ULONG WaveInDeviceCount
;
93 LIST_ENTRY WaveInList
;
95 ULONG WaveOutDeviceCount
;
96 LIST_ENTRY WaveOutList
;
99 }WDMAUD_DEVICE_EXTENSION
, *PWDMAUD_DEVICE_EXTENSION
;
103 KSSTREAM_HEADER Header
;
105 }CONTEXT_WRITE
, *PCONTEXT_WRITE
;
110 IN PWDMAUD_DEVICE_EXTENSION DeviceExtension
,
113 IN LPWAVEFORMATEX WaveFormatEx
,
114 IN ACCESS_MASK DesiredAccess
,
115 OUT PHANDLE PinHandle
);
118 WdmAudRegisterDeviceInterface(
119 IN PDEVICE_OBJECT PhysicalDeviceObject
,
120 IN PWDMAUD_DEVICE_EXTENSION DeviceExtension
);
123 WdmAudOpenSysAudioDevices(
124 IN PDEVICE_OBJECT DeviceObject
,
125 IN PWDMAUD_DEVICE_EXTENSION DeviceExtension
);
129 IN PDEVICE_OBJECT DeviceObject
,
130 IN PWDMAUD_CLIENT
*pClient
);
135 IN PDEVICE_OBJECT DeviceObject
,
141 IN PDEVICE_OBJECT DeviceObject
,
145 WdmAudControlOpenMixer(
146 IN PDEVICE_OBJECT DeviceObject
,
148 IN PWDMAUD_DEVICE_INFO DeviceInfo
,
149 IN PWDMAUD_CLIENT ClientInfo
);
152 WdmAudControlOpenWave(
153 IN PDEVICE_OBJECT DeviceObject
,
155 IN PWDMAUD_DEVICE_INFO DeviceInfo
,
156 IN PWDMAUD_CLIENT ClientInfo
);
160 GetNumOfMixerDevices(
161 IN PDEVICE_OBJECT DeviceObject
);
170 WdmAudOpenSysAudioDevice(
171 IN LPWSTR DeviceName
,
177 IN ULONG ProductNameSize
,
178 OUT LPWSTR ProductName
);
181 WdmAudMixerCapabilities(
182 IN PDEVICE_OBJECT DeviceObject
,
183 IN PWDMAUD_DEVICE_INFO DeviceInfo
,
184 IN PWDMAUD_CLIENT ClientInfo
,
185 IN PWDMAUD_DEVICE_EXTENSION DeviceExtension
);
188 WdmAudWaveCapabilities(
189 IN PDEVICE_OBJECT DeviceObject
,
190 IN PWDMAUD_DEVICE_INFO DeviceInfo
,
191 IN PWDMAUD_CLIENT ClientInfo
,
192 IN PWDMAUD_DEVICE_EXTENSION DeviceExtension
);
197 IN PDEVICE_OBJECT DeviceObject
,
199 IN PWDMAUD_DEVICE_INFO DeviceInfo
,
200 IN PWDMAUD_CLIENT ClientInfo
);
205 IN PDEVICE_OBJECT DeviceObject
,
207 IN PWDMAUD_DEVICE_INFO DeviceInfo
,
208 IN PWDMAUD_CLIENT ClientInfo
);
212 WdmAudGetLineControls(
213 IN PDEVICE_OBJECT DeviceObject
,
215 IN PWDMAUD_DEVICE_INFO DeviceInfo
,
216 IN PWDMAUD_CLIENT ClientInfo
);
220 WdmAudSetControlDetails(
221 IN PDEVICE_OBJECT DeviceObject
,
223 IN PWDMAUD_DEVICE_INFO DeviceInfo
,
224 IN PWDMAUD_CLIENT ClientInfo
);
228 WdmAudGetControlDetails(
229 IN PDEVICE_OBJECT DeviceObject
,
231 IN PWDMAUD_DEVICE_INFO DeviceInfo
,
232 IN PWDMAUD_CLIENT ClientInfo
);
235 WdmAudMixerInitialize(
236 IN PDEVICE_OBJECT DeviceObject
);
240 WdmAudWaveInitialize(
241 IN PDEVICE_OBJECT DeviceObject
);
245 IN PWDMAUD_CLIENT ClientInfo
,
248 IN SOUND_DEVICE_TYPE DeviceType
);
252 IN PWDMAUD_CLIENT ClientInfo
,
255 IN SOUND_DEVICE_TYPE DeviceType
,