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 WdmAudCloseAllMixers(
141 IN PDEVICE_OBJECT DeviceObject
,
142 IN PWDMAUD_CLIENT ClientInfo
,
146 WdmAudControlOpenWave(
147 IN PDEVICE_OBJECT DeviceObject
,
149 IN PWDMAUD_DEVICE_INFO DeviceInfo
,
150 IN PWDMAUD_CLIENT ClientInfo
);
153 WdmAudControlOpenMidi(
154 IN PDEVICE_OBJECT DeviceObject
,
156 IN PWDMAUD_DEVICE_INFO DeviceInfo
,
157 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
);
195 WdmAudMidiCapabilities(
196 IN PDEVICE_OBJECT DeviceObject
,
197 IN PWDMAUD_DEVICE_INFO DeviceInfo
,
198 IN PWDMAUD_CLIENT ClientInfo
,
199 IN PWDMAUD_DEVICE_EXTENSION DeviceExtension
);
204 IN PDEVICE_OBJECT DeviceObject
,
206 IN PWDMAUD_DEVICE_INFO DeviceInfo
,
207 IN PWDMAUD_CLIENT ClientInfo
);
212 IN PDEVICE_OBJECT DeviceObject
,
214 IN PWDMAUD_DEVICE_INFO DeviceInfo
,
215 IN PWDMAUD_CLIENT ClientInfo
);
219 WdmAudGetLineControls(
220 IN PDEVICE_OBJECT DeviceObject
,
222 IN PWDMAUD_DEVICE_INFO DeviceInfo
,
223 IN PWDMAUD_CLIENT ClientInfo
);
227 WdmAudSetControlDetails(
228 IN PDEVICE_OBJECT DeviceObject
,
230 IN PWDMAUD_DEVICE_INFO DeviceInfo
,
231 IN PWDMAUD_CLIENT ClientInfo
);
236 IN PDEVICE_OBJECT DeviceObject
,
238 IN PWDMAUD_DEVICE_INFO DeviceInfo
,
239 IN PWDMAUD_CLIENT ClientInfo
);
243 WdmAudGetControlDetails(
244 IN PDEVICE_OBJECT DeviceObject
,
246 IN PWDMAUD_DEVICE_INFO DeviceInfo
,
247 IN PWDMAUD_CLIENT ClientInfo
);
250 WdmAudMixerInitialize(
251 IN PDEVICE_OBJECT DeviceObject
);
255 WdmAudWaveInitialize(
256 IN PDEVICE_OBJECT DeviceObject
);
260 IN PWDMAUD_CLIENT ClientInfo
,
263 IN SOUND_DEVICE_TYPE DeviceType
);
267 IN PWDMAUD_CLIENT ClientInfo
,
270 IN SOUND_DEVICE_TYPE DeviceType
,
275 GetSysAudioDevicePnpName(
276 IN PDEVICE_OBJECT DeviceObject
,
277 IN ULONG DeviceIndex
,
278 OUT LPWSTR
* Device
);
281 OpenSysAudioDeviceByIndex(
282 IN PDEVICE_OBJECT DeviceObject
,
283 IN ULONG DeviceIndex
,
284 IN PHANDLE DeviceHandle
,
285 IN PFILE_OBJECT
* FileObject
);
290 OUT PHANDLE DeviceHandle
,
291 OUT PFILE_OBJECT
* FileObject
);
294 WdmAudGetMixerDeviceCount(VOID
);
297 WdmAudGetWaveInDeviceCount(VOID
);
300 WdmAudGetWaveOutDeviceCount(VOID
);
303 WdmAudGetMidiInDeviceCount(VOID
);
306 WdmAudGetMidiOutDeviceCount(VOID
);
309 WdmAudGetPnpNameByIndexAndType(
310 IN ULONG DeviceIndex
,
311 IN SOUND_DEVICE_TYPE DeviceType
,
318 GetSysAudioDeviceCount(
319 IN PDEVICE_OBJECT DeviceObject
);
324 IN POOL_TYPE PoolType
,
325 IN SIZE_T NumberOfBytes
);
331 #endif /* _WDMAUD_PCH_ */