3 #include <pseh/pseh2.h>
17 #include "interface.h"
22 SOUND_DEVICE_TYPE Type
;
26 }WDMAUD_HANDLE
, *PWDMAUD_HANDLE
;
33 WDMAUD_HANDLE
* hPins
;
35 LIST_ENTRY MixerEventList
;
36 }WDMAUD_CLIENT
, *PWDMAUD_CLIENT
;
41 UNICODE_STRING SymbolicLink
;
42 }SYSAUDIO_ENTRY
, *PSYSAUDIO_ENTRY
;
46 KSDEVICE_HEADER DeviceHeader
;
47 PVOID SysAudioNotification
;
49 BOOL DeviceInterfaceSupport
;
52 ULONG NumSysAudioDevices
;
53 LIST_ENTRY SysAudioDeviceList
;
55 PFILE_OBJECT FileObject
;
57 LIST_ENTRY WdmAudClientList
;
58 }WDMAUD_DEVICE_EXTENSION
, *PWDMAUD_DEVICE_EXTENSION
;
62 PWDMAUD_CLIENT ClientInfo
;
63 PWDMAUD_DEVICE_EXTENSION DeviceExtension
;
64 SOUND_DEVICE_TYPE DeviceType
;
65 }PIN_CREATE_CONTEXT
, *PPIN_CREATE_CONTEXT
;
71 IN PWDMAUD_DEVICE_EXTENSION DeviceExtension
,
74 IN LPWAVEFORMATEX WaveFormatEx
,
75 IN ACCESS_MASK DesiredAccess
,
76 OUT PHANDLE PinHandle
);
79 WdmAudRegisterDeviceInterface(
80 IN PDEVICE_OBJECT PhysicalDeviceObject
,
81 IN PWDMAUD_DEVICE_EXTENSION DeviceExtension
);
84 WdmAudOpenSysAudioDevices(
85 IN PDEVICE_OBJECT DeviceObject
,
86 IN PWDMAUD_DEVICE_EXTENSION DeviceExtension
);
90 IN PDEVICE_OBJECT DeviceObject
,
91 IN PWDMAUD_CLIENT
*pClient
);
96 IN PDEVICE_OBJECT DeviceObject
,
102 IN PDEVICE_OBJECT DeviceObject
,
108 IN PDEVICE_OBJECT DeviceObject
,
112 WdmAudControlOpenMixer(
113 IN PDEVICE_OBJECT DeviceObject
,
115 IN PWDMAUD_DEVICE_INFO DeviceInfo
,
116 IN PWDMAUD_CLIENT ClientInfo
);
119 WdmAudControlOpenWave(
120 IN PDEVICE_OBJECT DeviceObject
,
122 IN PWDMAUD_DEVICE_INFO DeviceInfo
,
123 IN PWDMAUD_CLIENT ClientInfo
);
127 GetNumOfMixerDevices(
128 IN PDEVICE_OBJECT DeviceObject
);
137 WdmAudOpenSysAudioDevice(
138 IN LPWSTR DeviceName
,
144 IN ULONG ProductNameSize
,
145 OUT LPWSTR ProductName
);
148 WdmAudMixerCapabilities(
149 IN PDEVICE_OBJECT DeviceObject
,
150 IN PWDMAUD_DEVICE_INFO DeviceInfo
,
151 IN PWDMAUD_CLIENT ClientInfo
,
152 IN PWDMAUD_DEVICE_EXTENSION DeviceExtension
);
155 WdmAudWaveCapabilities(
156 IN PDEVICE_OBJECT DeviceObject
,
157 IN PWDMAUD_DEVICE_INFO DeviceInfo
,
158 IN PWDMAUD_CLIENT ClientInfo
,
159 IN PWDMAUD_DEVICE_EXTENSION DeviceExtension
);
164 IN PDEVICE_OBJECT DeviceObject
,
166 IN PWDMAUD_DEVICE_INFO DeviceInfo
,
167 IN PWDMAUD_CLIENT ClientInfo
);
172 IN PDEVICE_OBJECT DeviceObject
,
174 IN PWDMAUD_DEVICE_INFO DeviceInfo
,
175 IN PWDMAUD_CLIENT ClientInfo
);
179 WdmAudGetLineControls(
180 IN PDEVICE_OBJECT DeviceObject
,
182 IN PWDMAUD_DEVICE_INFO DeviceInfo
,
183 IN PWDMAUD_CLIENT ClientInfo
);
187 WdmAudSetControlDetails(
188 IN PDEVICE_OBJECT DeviceObject
,
190 IN PWDMAUD_DEVICE_INFO DeviceInfo
,
191 IN PWDMAUD_CLIENT ClientInfo
);
196 IN PDEVICE_OBJECT DeviceObject
,
198 IN PWDMAUD_DEVICE_INFO DeviceInfo
,
199 IN PWDMAUD_CLIENT ClientInfo
);
203 WdmAudGetControlDetails(
204 IN PDEVICE_OBJECT DeviceObject
,
206 IN PWDMAUD_DEVICE_INFO DeviceInfo
,
207 IN PWDMAUD_CLIENT ClientInfo
);
210 WdmAudMixerInitialize(
211 IN PDEVICE_OBJECT DeviceObject
);
215 WdmAudWaveInitialize(
216 IN PDEVICE_OBJECT DeviceObject
);
220 IN PWDMAUD_CLIENT ClientInfo
,
223 IN SOUND_DEVICE_TYPE DeviceType
);
227 IN PWDMAUD_CLIENT ClientInfo
,
230 IN SOUND_DEVICE_TYPE DeviceType
,
235 GetSysAudioDevicePnpName(
236 IN PDEVICE_OBJECT DeviceObject
,
237 IN ULONG DeviceIndex
,
238 OUT LPWSTR
* Device
);
241 OpenSysAudioDeviceByIndex(
242 IN PDEVICE_OBJECT DeviceObject
,
243 IN ULONG DeviceIndex
,
244 IN PHANDLE DeviceHandle
,
245 IN PFILE_OBJECT
* FileObject
);
250 OUT PHANDLE DeviceHandle
,
251 OUT PFILE_OBJECT
* FileObject
);
254 WdmAudGetMixerDeviceCount();
257 WdmAudGetWaveInDeviceCount();
260 WdmAudGetWaveOutDeviceCount();
263 WdmAudGetMixerPnpNameByIndex(
264 IN ULONG DeviceIndex
,
265 OUT LPWSTR
* Device
);
268 WdmAudGetPnpNameByIndexAndType(
269 IN ULONG DeviceIndex
,
270 IN SOUND_DEVICE_TYPE DeviceType
,
277 GetSysAudioDeviceCount(
278 IN PDEVICE_OBJECT DeviceObject
);