14 PFILE_OBJECT FileObject
;
15 }WDMAUD_COMPLETION_CONTEXT
, *PWDMAUD_COMPLETION_CONTEXT
;
21 SOUND_DEVICE_TYPE Type
;
25 }WDMAUD_HANDLE
, *PWDMAUD_HANDLE
;
32 WDMAUD_HANDLE
* hPins
;
34 LIST_ENTRY MixerEventList
;
35 }WDMAUD_CLIENT
, *PWDMAUD_CLIENT
;
40 ULONG NotificationType
;
43 }EVENT_ENTRY
, *PEVENT_ENTRY
;
48 UNICODE_STRING SymbolicLink
;
49 }SYSAUDIO_ENTRY
, *PSYSAUDIO_ENTRY
;
53 KSDEVICE_HEADER DeviceHeader
;
54 PVOID SysAudioNotification
;
56 BOOL DeviceInterfaceSupport
;
59 ULONG NumSysAudioDevices
;
60 LIST_ENTRY SysAudioDeviceList
;
62 PFILE_OBJECT FileObject
;
63 LIST_ENTRY WdmAudClientList
;
65 ULONG SysAudioDeviceCount
;
66 PIO_WORKITEM WorkItem
;
67 KEVENT InitializationCompletionEvent
;
70 PDEVICE_OBJECT NextDeviceObject
;
71 }WDMAUD_DEVICE_EXTENSION
, *PWDMAUD_DEVICE_EXTENSION
;
75 PWDMAUD_CLIENT ClientInfo
;
76 PWDMAUD_DEVICE_EXTENSION DeviceExtension
;
77 SOUND_DEVICE_TYPE DeviceType
;
78 }PIN_CREATE_CONTEXT
, *PPIN_CREATE_CONTEXT
;
84 IN PWDMAUD_DEVICE_EXTENSION DeviceExtension
,
87 IN LPWAVEFORMATEX WaveFormatEx
,
88 IN ACCESS_MASK DesiredAccess
,
89 OUT PHANDLE PinHandle
);
92 WdmAudRegisterDeviceInterface(
93 IN PDEVICE_OBJECT PhysicalDeviceObject
,
94 IN PWDMAUD_DEVICE_EXTENSION DeviceExtension
);
97 WdmAudOpenSysAudioDevices(
98 IN PDEVICE_OBJECT DeviceObject
,
99 IN PWDMAUD_DEVICE_EXTENSION DeviceExtension
);
103 IN PDEVICE_OBJECT DeviceObject
,
104 IN PWDMAUD_CLIENT
*pClient
);
109 IN PDEVICE_OBJECT DeviceObject
,
115 IN PDEVICE_OBJECT DeviceObject
,
121 IN PDEVICE_OBJECT DeviceObject
,
125 WdmAudControlOpenMixer(
126 IN PDEVICE_OBJECT DeviceObject
,
128 IN PWDMAUD_DEVICE_INFO DeviceInfo
,
129 IN PWDMAUD_CLIENT ClientInfo
);
132 WdmAudControlCloseMixer(
133 IN PDEVICE_OBJECT DeviceObject
,
135 IN PWDMAUD_DEVICE_INFO DeviceInfo
,
136 IN PWDMAUD_CLIENT ClientInfo
,
140 WdmAudControlOpenWave(
141 IN PDEVICE_OBJECT DeviceObject
,
143 IN PWDMAUD_DEVICE_INFO DeviceInfo
,
144 IN PWDMAUD_CLIENT ClientInfo
);
147 WdmAudControlOpenMidi(
148 IN PDEVICE_OBJECT DeviceObject
,
150 IN PWDMAUD_DEVICE_INFO DeviceInfo
,
151 IN PWDMAUD_CLIENT ClientInfo
);
154 GetNumOfMixerDevices(
155 IN PDEVICE_OBJECT DeviceObject
);
164 WdmAudOpenSysAudioDevice(
165 IN LPWSTR DeviceName
,
171 IN ULONG ProductNameSize
,
172 OUT LPWSTR ProductName
);
175 WdmAudMixerCapabilities(
176 IN PDEVICE_OBJECT DeviceObject
,
177 IN PWDMAUD_DEVICE_INFO DeviceInfo
,
178 IN PWDMAUD_CLIENT ClientInfo
,
179 IN PWDMAUD_DEVICE_EXTENSION DeviceExtension
);
182 WdmAudWaveCapabilities(
183 IN PDEVICE_OBJECT DeviceObject
,
184 IN PWDMAUD_DEVICE_INFO DeviceInfo
,
185 IN PWDMAUD_CLIENT ClientInfo
,
186 IN PWDMAUD_DEVICE_EXTENSION DeviceExtension
);
189 WdmAudMidiCapabilities(
190 IN PDEVICE_OBJECT DeviceObject
,
191 IN PWDMAUD_DEVICE_INFO DeviceInfo
,
192 IN PWDMAUD_CLIENT ClientInfo
,
193 IN PWDMAUD_DEVICE_EXTENSION DeviceExtension
);
198 IN PDEVICE_OBJECT DeviceObject
,
200 IN PWDMAUD_DEVICE_INFO DeviceInfo
,
201 IN PWDMAUD_CLIENT ClientInfo
);
206 IN PDEVICE_OBJECT DeviceObject
,
208 IN PWDMAUD_DEVICE_INFO DeviceInfo
,
209 IN PWDMAUD_CLIENT ClientInfo
);
213 WdmAudGetLineControls(
214 IN PDEVICE_OBJECT DeviceObject
,
216 IN PWDMAUD_DEVICE_INFO DeviceInfo
,
217 IN PWDMAUD_CLIENT ClientInfo
);
221 WdmAudSetControlDetails(
222 IN PDEVICE_OBJECT DeviceObject
,
224 IN PWDMAUD_DEVICE_INFO DeviceInfo
,
225 IN PWDMAUD_CLIENT ClientInfo
);
230 IN PDEVICE_OBJECT DeviceObject
,
232 IN PWDMAUD_DEVICE_INFO DeviceInfo
,
233 IN PWDMAUD_CLIENT ClientInfo
);
237 WdmAudGetControlDetails(
238 IN PDEVICE_OBJECT DeviceObject
,
240 IN PWDMAUD_DEVICE_INFO DeviceInfo
,
241 IN PWDMAUD_CLIENT ClientInfo
);
244 WdmAudMixerInitialize(
245 IN PDEVICE_OBJECT DeviceObject
);
249 WdmAudWaveInitialize(
250 IN PDEVICE_OBJECT DeviceObject
);
254 IN PWDMAUD_CLIENT ClientInfo
,
257 IN SOUND_DEVICE_TYPE DeviceType
);
261 IN PWDMAUD_CLIENT ClientInfo
,
264 IN SOUND_DEVICE_TYPE DeviceType
,
269 GetSysAudioDevicePnpName(
270 IN PDEVICE_OBJECT DeviceObject
,
271 IN ULONG DeviceIndex
,
272 OUT LPWSTR
* Device
);
275 OpenSysAudioDeviceByIndex(
276 IN PDEVICE_OBJECT DeviceObject
,
277 IN ULONG DeviceIndex
,
278 IN PHANDLE DeviceHandle
,
279 IN PFILE_OBJECT
* FileObject
);
284 OUT PHANDLE DeviceHandle
,
285 OUT PFILE_OBJECT
* FileObject
);
288 WdmAudGetMixerDeviceCount(VOID
);
291 WdmAudGetWaveInDeviceCount(VOID
);
294 WdmAudGetWaveOutDeviceCount(VOID
);
297 WdmAudGetMidiInDeviceCount(VOID
);
300 WdmAudGetMidiOutDeviceCount(VOID
);
303 WdmAudGetPnpNameByIndexAndType(
304 IN ULONG DeviceIndex
,
305 IN SOUND_DEVICE_TYPE DeviceType
,
312 GetSysAudioDeviceCount(
313 IN PDEVICE_OBJECT DeviceObject
);
318 IN POOL_TYPE PoolType
,
319 IN SIZE_T NumberOfBytes
);
325 #endif /* _WDMAUD_PCH_ */