14 }WDMAUD_COMPLETION_CONTEXT
, *PWDMAUD_COMPLETION_CONTEXT
;
20 SOUND_DEVICE_TYPE Type
;
24 }WDMAUD_HANDLE
, *PWDMAUD_HANDLE
;
31 WDMAUD_HANDLE
* hPins
;
33 LIST_ENTRY MixerEventList
;
34 }WDMAUD_CLIENT
, *PWDMAUD_CLIENT
;
39 ULONG NotificationType
;
42 }EVENT_ENTRY
, *PEVENT_ENTRY
;
47 UNICODE_STRING SymbolicLink
;
48 }SYSAUDIO_ENTRY
, *PSYSAUDIO_ENTRY
;
52 KSDEVICE_HEADER DeviceHeader
;
53 PVOID SysAudioNotification
;
55 BOOL DeviceInterfaceSupport
;
58 ULONG NumSysAudioDevices
;
59 LIST_ENTRY SysAudioDeviceList
;
61 PFILE_OBJECT FileObject
;
62 LIST_ENTRY WdmAudClientList
;
64 ULONG SysAudioDeviceCount
;
65 PIO_WORKITEM WorkItem
;
66 KEVENT InitializationCompletionEvent
;
69 }WDMAUD_DEVICE_EXTENSION
, *PWDMAUD_DEVICE_EXTENSION
;
73 PWDMAUD_CLIENT ClientInfo
;
74 PWDMAUD_DEVICE_EXTENSION DeviceExtension
;
75 SOUND_DEVICE_TYPE DeviceType
;
76 }PIN_CREATE_CONTEXT
, *PPIN_CREATE_CONTEXT
;
82 IN PWDMAUD_DEVICE_EXTENSION DeviceExtension
,
85 IN LPWAVEFORMATEX WaveFormatEx
,
86 IN ACCESS_MASK DesiredAccess
,
87 OUT PHANDLE PinHandle
);
90 WdmAudRegisterDeviceInterface(
91 IN PDEVICE_OBJECT PhysicalDeviceObject
,
92 IN PWDMAUD_DEVICE_EXTENSION DeviceExtension
);
95 WdmAudOpenSysAudioDevices(
96 IN PDEVICE_OBJECT DeviceObject
,
97 IN PWDMAUD_DEVICE_EXTENSION DeviceExtension
);
101 IN PDEVICE_OBJECT DeviceObject
,
102 IN PWDMAUD_CLIENT
*pClient
);
107 IN PDEVICE_OBJECT DeviceObject
,
113 IN PDEVICE_OBJECT DeviceObject
,
119 IN PDEVICE_OBJECT DeviceObject
,
123 WdmAudControlOpenMixer(
124 IN PDEVICE_OBJECT DeviceObject
,
126 IN PWDMAUD_DEVICE_INFO DeviceInfo
,
127 IN PWDMAUD_CLIENT ClientInfo
);
130 WdmAudControlOpenWave(
131 IN PDEVICE_OBJECT DeviceObject
,
133 IN PWDMAUD_DEVICE_INFO DeviceInfo
,
134 IN PWDMAUD_CLIENT ClientInfo
);
137 WdmAudControlOpenMidi(
138 IN PDEVICE_OBJECT DeviceObject
,
140 IN PWDMAUD_DEVICE_INFO DeviceInfo
,
141 IN PWDMAUD_CLIENT ClientInfo
);
144 GetNumOfMixerDevices(
145 IN PDEVICE_OBJECT DeviceObject
);
154 WdmAudOpenSysAudioDevice(
155 IN LPWSTR DeviceName
,
161 IN ULONG ProductNameSize
,
162 OUT LPWSTR ProductName
);
165 WdmAudMixerCapabilities(
166 IN PDEVICE_OBJECT DeviceObject
,
167 IN PWDMAUD_DEVICE_INFO DeviceInfo
,
168 IN PWDMAUD_CLIENT ClientInfo
,
169 IN PWDMAUD_DEVICE_EXTENSION DeviceExtension
);
172 WdmAudWaveCapabilities(
173 IN PDEVICE_OBJECT DeviceObject
,
174 IN PWDMAUD_DEVICE_INFO DeviceInfo
,
175 IN PWDMAUD_CLIENT ClientInfo
,
176 IN PWDMAUD_DEVICE_EXTENSION DeviceExtension
);
179 WdmAudMidiCapabilities(
180 IN PDEVICE_OBJECT DeviceObject
,
181 IN PWDMAUD_DEVICE_INFO DeviceInfo
,
182 IN PWDMAUD_CLIENT ClientInfo
,
183 IN PWDMAUD_DEVICE_EXTENSION DeviceExtension
);
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 WdmAudGetLineControls(
204 IN PDEVICE_OBJECT DeviceObject
,
206 IN PWDMAUD_DEVICE_INFO DeviceInfo
,
207 IN PWDMAUD_CLIENT ClientInfo
);
211 WdmAudSetControlDetails(
212 IN PDEVICE_OBJECT DeviceObject
,
214 IN PWDMAUD_DEVICE_INFO DeviceInfo
,
215 IN PWDMAUD_CLIENT ClientInfo
);
220 IN PDEVICE_OBJECT DeviceObject
,
222 IN PWDMAUD_DEVICE_INFO DeviceInfo
,
223 IN PWDMAUD_CLIENT ClientInfo
);
227 WdmAudGetControlDetails(
228 IN PDEVICE_OBJECT DeviceObject
,
230 IN PWDMAUD_DEVICE_INFO DeviceInfo
,
231 IN PWDMAUD_CLIENT ClientInfo
);
234 WdmAudMixerInitialize(
235 IN PDEVICE_OBJECT DeviceObject
);
239 WdmAudWaveInitialize(
240 IN PDEVICE_OBJECT DeviceObject
);
244 IN PWDMAUD_CLIENT ClientInfo
,
247 IN SOUND_DEVICE_TYPE DeviceType
);
251 IN PWDMAUD_CLIENT ClientInfo
,
254 IN SOUND_DEVICE_TYPE DeviceType
,
259 GetSysAudioDevicePnpName(
260 IN PDEVICE_OBJECT DeviceObject
,
261 IN ULONG DeviceIndex
,
262 OUT LPWSTR
* Device
);
265 OpenSysAudioDeviceByIndex(
266 IN PDEVICE_OBJECT DeviceObject
,
267 IN ULONG DeviceIndex
,
268 IN PHANDLE DeviceHandle
,
269 IN PFILE_OBJECT
* FileObject
);
274 OUT PHANDLE DeviceHandle
,
275 OUT PFILE_OBJECT
* FileObject
);
278 WdmAudGetMixerDeviceCount(VOID
);
281 WdmAudGetWaveInDeviceCount(VOID
);
284 WdmAudGetWaveOutDeviceCount(VOID
);
287 WdmAudGetMidiInDeviceCount(VOID
);
290 WdmAudGetMidiOutDeviceCount(VOID
);
293 WdmAudGetPnpNameByIndexAndType(
294 IN ULONG DeviceIndex
,
295 IN SOUND_DEVICE_TYPE DeviceType
,
302 GetSysAudioDeviceCount(
303 IN PDEVICE_OBJECT DeviceObject
);
308 IN POOL_TYPE PoolType
,
309 IN SIZE_T NumberOfBytes
);
315 #endif /* _WDMAUD_PCH_ */