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 WdmAudControlOpenWave(
133 IN PDEVICE_OBJECT DeviceObject
,
135 IN PWDMAUD_DEVICE_INFO DeviceInfo
,
136 IN PWDMAUD_CLIENT ClientInfo
);
139 WdmAudControlOpenMidi(
140 IN PDEVICE_OBJECT DeviceObject
,
142 IN PWDMAUD_DEVICE_INFO DeviceInfo
,
143 IN PWDMAUD_CLIENT ClientInfo
);
146 GetNumOfMixerDevices(
147 IN PDEVICE_OBJECT DeviceObject
);
156 WdmAudOpenSysAudioDevice(
157 IN LPWSTR DeviceName
,
163 IN ULONG ProductNameSize
,
164 OUT LPWSTR ProductName
);
167 WdmAudMixerCapabilities(
168 IN PDEVICE_OBJECT DeviceObject
,
169 IN PWDMAUD_DEVICE_INFO DeviceInfo
,
170 IN PWDMAUD_CLIENT ClientInfo
,
171 IN PWDMAUD_DEVICE_EXTENSION DeviceExtension
);
174 WdmAudWaveCapabilities(
175 IN PDEVICE_OBJECT DeviceObject
,
176 IN PWDMAUD_DEVICE_INFO DeviceInfo
,
177 IN PWDMAUD_CLIENT ClientInfo
,
178 IN PWDMAUD_DEVICE_EXTENSION DeviceExtension
);
181 WdmAudMidiCapabilities(
182 IN PDEVICE_OBJECT DeviceObject
,
183 IN PWDMAUD_DEVICE_INFO DeviceInfo
,
184 IN PWDMAUD_CLIENT ClientInfo
,
185 IN PWDMAUD_DEVICE_EXTENSION DeviceExtension
);
190 IN PDEVICE_OBJECT DeviceObject
,
192 IN PWDMAUD_DEVICE_INFO DeviceInfo
,
193 IN PWDMAUD_CLIENT ClientInfo
);
198 IN PDEVICE_OBJECT DeviceObject
,
200 IN PWDMAUD_DEVICE_INFO DeviceInfo
,
201 IN PWDMAUD_CLIENT ClientInfo
);
205 WdmAudGetLineControls(
206 IN PDEVICE_OBJECT DeviceObject
,
208 IN PWDMAUD_DEVICE_INFO DeviceInfo
,
209 IN PWDMAUD_CLIENT ClientInfo
);
213 WdmAudSetControlDetails(
214 IN PDEVICE_OBJECT DeviceObject
,
216 IN PWDMAUD_DEVICE_INFO DeviceInfo
,
217 IN PWDMAUD_CLIENT ClientInfo
);
222 IN PDEVICE_OBJECT DeviceObject
,
224 IN PWDMAUD_DEVICE_INFO DeviceInfo
,
225 IN PWDMAUD_CLIENT ClientInfo
);
229 WdmAudGetControlDetails(
230 IN PDEVICE_OBJECT DeviceObject
,
232 IN PWDMAUD_DEVICE_INFO DeviceInfo
,
233 IN PWDMAUD_CLIENT ClientInfo
);
236 WdmAudMixerInitialize(
237 IN PDEVICE_OBJECT DeviceObject
);
241 WdmAudWaveInitialize(
242 IN PDEVICE_OBJECT DeviceObject
);
246 IN PWDMAUD_CLIENT ClientInfo
,
249 IN SOUND_DEVICE_TYPE DeviceType
);
253 IN PWDMAUD_CLIENT ClientInfo
,
256 IN SOUND_DEVICE_TYPE DeviceType
,
261 GetSysAudioDevicePnpName(
262 IN PDEVICE_OBJECT DeviceObject
,
263 IN ULONG DeviceIndex
,
264 OUT LPWSTR
* Device
);
267 OpenSysAudioDeviceByIndex(
268 IN PDEVICE_OBJECT DeviceObject
,
269 IN ULONG DeviceIndex
,
270 IN PHANDLE DeviceHandle
,
271 IN PFILE_OBJECT
* FileObject
);
276 OUT PHANDLE DeviceHandle
,
277 OUT PFILE_OBJECT
* FileObject
);
280 WdmAudGetMixerDeviceCount(VOID
);
283 WdmAudGetWaveInDeviceCount(VOID
);
286 WdmAudGetWaveOutDeviceCount(VOID
);
289 WdmAudGetMidiInDeviceCount(VOID
);
292 WdmAudGetMidiOutDeviceCount(VOID
);
295 WdmAudGetPnpNameByIndexAndType(
296 IN ULONG DeviceIndex
,
297 IN SOUND_DEVICE_TYPE DeviceType
,
304 GetSysAudioDeviceCount(
305 IN PDEVICE_OBJECT DeviceObject
);
310 IN POOL_TYPE PoolType
,
311 IN SIZE_T NumberOfBytes
);
317 #endif /* _WDMAUD_PCH_ */