ReactOS  0.4.14-dev-55-g2da92ac
wdmaud.h
Go to the documentation of this file.
1 #ifndef _WDMAUD_PCH_
2 #define _WDMAUD_PCH_
3 
4 #include <portcls.h>
5 #include <mmsystem.h>
6 
7 #include "interface.h"
8 
9 typedef struct
10 {
16 
17 
18 typedef struct
19 {
26 
27 typedef struct
28 {
33 
36 
37 typedef struct
38 {
44 
45 typedef struct
46 {
50 
51 typedef struct
52 {
55 
57 
64 
69 
72 
73 typedef struct
74 {
79 
80 
82 NTAPI
84  IN PWDMAUD_DEVICE_EXTENSION DeviceExtension,
85  IN ULONG FilterId,
86  IN ULONG PinId,
87  IN LPWAVEFORMATEX WaveFormatEx,
89  OUT PHANDLE PinHandle);
90 
94  IN PWDMAUD_DEVICE_EXTENSION DeviceExtension);
95 
99  IN PWDMAUD_DEVICE_EXTENSION DeviceExtension);
100 
101 NTSTATUS
104  IN PWDMAUD_CLIENT *pClient);
105 
106 NTSTATUS
107 NTAPI
110  IN PIRP Irp);
111 
112 NTSTATUS
113 NTAPI
116  IN PIRP Irp);
117 
118 NTSTATUS
119 NTAPI
122  IN PIRP Irp);
123 
124 NTSTATUS
127  IN PIRP Irp,
130 
131 NTSTATUS
134  IN PIRP Irp,
137  IN ULONG Index);
138 
139 VOID
143  IN ULONG Index);
144 
145 NTSTATUS
148  IN PIRP Irp,
151 
152 NTSTATUS
155  IN PIRP Irp,
158 
159 ULONG
162 
163 NTSTATUS
165  IN PIRP Irp,
167  IN ULONG Length);
168 
169 NTSTATUS
172  OUT PHANDLE Handle);
173 
174 NTSTATUS
176  IN LPWSTR PnpName,
177  IN ULONG ProductNameSize,
178  OUT LPWSTR ProductName);
179 
180 NTSTATUS
185  IN PWDMAUD_DEVICE_EXTENSION DeviceExtension);
186 
187 NTSTATUS
192  IN PWDMAUD_DEVICE_EXTENSION DeviceExtension);
193 
194 NTSTATUS
199  IN PWDMAUD_DEVICE_EXTENSION DeviceExtension);
200 
201 NTSTATUS
202 NTAPI
205  IN PIRP Irp,
208 
209 NTSTATUS
210 NTAPI
213  IN PIRP Irp,
216 
217 NTSTATUS
218 NTAPI
221  IN PIRP Irp,
224 
225 NTSTATUS
226 NTAPI
229  IN PIRP Irp,
232 
233 NTSTATUS
234 NTAPI
237  IN PIRP Irp,
240 
241 NTSTATUS
242 NTAPI
245  IN PIRP Irp,
248 
249 NTSTATUS
252 
253 NTSTATUS
254 NTAPI
257 
258 ULONG
259 ClosePin(
261  IN ULONG FilterId,
262  IN ULONG PinId,
264 
265 NTSTATUS
268  IN ULONG FilterId,
269  IN ULONG PinId,
271  IN HANDLE PinHandle,
272  IN ULONG FreeIndex);
273 
274 NTSTATUS
277  IN ULONG DeviceIndex,
278  OUT LPWSTR * Device);
279 
280 NTSTATUS
283  IN ULONG DeviceIndex,
286 
287 NTSTATUS
288 OpenDevice(
289  IN LPWSTR Device,
292 
293 ULONG
295 
296 ULONG
298 
299 ULONG
301 
302 ULONG
304 
305 ULONG
307 
308 NTSTATUS
310  IN ULONG DeviceIndex,
312  OUT LPWSTR *Device);
313 
314 
315 /* sup.c */
316 
317 ULONG
320 
321 
322 PVOID
326 
327 VOID
328 FreeItem(
329  IN PVOID Item);
330 
331 #endif /* _WDMAUD_PCH_ */
NTSTATUS WdmAudMixerCapabilities(IN PDEVICE_OBJECT DeviceObject, IN PWDMAUD_DEVICE_INFO DeviceInfo, IN PWDMAUD_CLIENT ClientInfo, IN PWDMAUD_DEVICE_EXTENSION DeviceExtension)
Definition: mmixer.c:398
ULONG GetSysAudioDeviceCount(IN PDEVICE_OBJECT DeviceObject)
Definition: sup.c:42
NTSTATUS WdmAudGetPnpNameByIndexAndType(IN ULONG DeviceIndex, IN SOUND_DEVICE_TYPE DeviceType, OUT LPWSTR *Device)
Definition: mmixer.c:693
#define IN
Definition: typedefs.h:38
_Inout_ PUSB_DEVICE_HANDLE DeviceHandle
Definition: hubbusif.h:121
_In_ PIRP _In_ PDEVICE_OBJECT Device
Definition: fatprocs.h:2020
MMRESULT WdmAudGetLineInfo(IN HANDLE hMixer, IN DWORD MixerId, IN LPMIXERLINEW MixLine, IN ULONG Flags)
Definition: mmixer.c:405
NTSTATUS WdmAudOpenSysAudioDevices(IN PDEVICE_OBJECT DeviceObject, IN PWDMAUD_DEVICE_EXTENSION DeviceExtension)
Definition: deviface.c:93
struct WDMAUD_CLIENT * PWDMAUD_CLIENT
NTSTATUS WdmAudMidiCapabilities(IN PDEVICE_OBJECT DeviceObject, IN PWDMAUD_DEVICE_INFO DeviceInfo, IN PWDMAUD_CLIENT ClientInfo, IN PWDMAUD_DEVICE_EXTENSION DeviceExtension)
Definition: mmixer.c:747
_In_ PIRP Irp
Definition: csq.h:116
VOID FreeItem(IN PVOID Item)
Definition: misc.c:43
DeviceType
Definition: mmdrv.h:41
LIST_ENTRY MixerEventList
Definition: wdmaud.h:34
WDMAUD_HANDLE * hPins
Definition: wdmaud.h:32
SOUND_DEVICE_TYPE DeviceType
Definition: wdmaud.h:77
LONG NTSTATUS
Definition: precomp.h:26
ULONG SysAudioDeviceCount
Definition: wdmaud.h:65
NTSTATUS WdmAudControlOpenMidi(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp, IN PWDMAUD_DEVICE_INFO DeviceInfo, IN PWDMAUD_CLIENT ClientInfo)
Definition: mmixer.c:847
ULONG WdmAudGetMidiInDeviceCount(VOID)
HANDLE hMixer
Definition: wdmaud.h:42
SOUND_DEVICE_TYPE Type
Definition: wdmaud.h:21
NTSTATUS GetSysAudioDevicePnpName(IN PDEVICE_OBJECT DeviceObject, IN ULONG DeviceIndex, OUT LPWSTR *Device)
Definition: sup.c:357
ULONG WdmAudGetWaveOutDeviceCount(VOID)
LIST_ENTRY Entry
Definition: wdmaud.h:39
KSDEVICE_HEADER DeviceHeader
Definition: wdmaud.h:53
LIST_ENTRY Entry
Definition: wdmaud.h:47
PDEVICE_OBJECT PhysicalDeviceObject
Definition: btrfs_drv.h:1114
WCHAR DeviceName[]
Definition: adapter.cpp:21
NTSTATUS WdmAudOpenSysAudioDevice(IN LPWSTR DeviceName, OUT PHANDLE Handle)
Definition: deviface.c:16
NTSTATUS NTAPI WdmAudGetMixerEvent(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp, IN PWDMAUD_DEVICE_INFO DeviceInfo, IN PWDMAUD_CLIENT ClientInfo)
Definition: mmixer.c:620
VOID WdmAudCloseAllMixers(IN PDEVICE_OBJECT DeviceObject, IN PWDMAUD_CLIENT ClientInfo, IN ULONG Index)
Definition: mmixer.c:501
NTSTATUS WdmAudControlOpenMixer(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp, IN PWDMAUD_DEVICE_INFO DeviceInfo, IN PWDMAUD_CLIENT ClientInfo)
Definition: mmixer.c:411
ULONG FilterId
Definition: wdmaud.h:22
NTSTATUS NTAPI WdmAudDeviceControl(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
Definition: control.c:302
PWDMAUD_CLIENT ClientInfo
Definition: wdmaud.h:75
CLIENT_DATA ClientInfo
PVOID AllocateItem(IN POOL_TYPE PoolType, IN SIZE_T NumberOfBytes)
Definition: misc.c:30
NTSTATUS(* NTAPI)(IN PFILE_FULL_EA_INFORMATION EaBuffer, IN ULONG EaLength, OUT PULONG ErrorOffset)
Definition: IoEaTest.cpp:117
unsigned int BOOL
Definition: ntddk_ex.h:94
NTSTATUS NTAPI WdmAudReadWrite(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
Definition: control.c:436
struct PIN_CREATE_CONTEXT * PPIN_CREATE_CONTEXT
struct WDMAUD_DEVICE_EXTENSION * PWDMAUD_DEVICE_EXTENSION
NTSTATUS InsertPinHandle(IN PWDMAUD_CLIENT ClientInfo, IN ULONG FilterId, IN ULONG PinId, IN SOUND_DEVICE_TYPE DeviceType, IN HANDLE PinHandle, IN ULONG FreeIndex)
Definition: sup.c:104
ULONG NumSysAudioDevices
Definition: wdmaud.h:59
ULONG Value
Definition: wdmaud.h:41
HANDLE Handle
Definition: wdmaud.h:20
PIO_WORKITEM WorkItem
Definition: wdmaud.h:66
KEVENT InitializationCompletionEvent
Definition: wdmaud.h:67
NTSTATUS WdmAudControlOpenWave(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp, IN PWDMAUD_DEVICE_INFO DeviceInfo, IN PWDMAUD_CLIENT ClientInfo)
Definition: mmixer.c:825
ULONG ClosePin(IN PWDMAUD_CLIENT ClientInfo, IN ULONG FilterId, IN ULONG PinId, IN SOUND_DEVICE_TYPE DeviceType)
Definition: sup.c:80
NTSTATUS WdmAudControlCloseMixer(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp, IN PWDMAUD_DEVICE_INFO DeviceInfo, IN PWDMAUD_CLIENT ClientInfo, IN ULONG Index)
Definition: mmixer.c:475
PFILE_OBJECT FileObject
Definition: wdmaud.h:14
ULONG WdmAudGetMidiOutDeviceCount(VOID)
_Inout_ PFILE_OBJECT FileObject
Definition: cdprocs.h:593
struct WDMAUD_HANDLE * PWDMAUD_HANDLE
_In_ HANDLE Handle
Definition: extypes.h:390
HANDLE hProcess
Definition: wdmaud.h:30
ULONG NumPins
Definition: wdmaud.h:31
NTSTATUS NTAPI OpenWavePin(IN PWDMAUD_DEVICE_EXTENSION DeviceExtension, IN ULONG FilterId, IN ULONG PinId, IN LPWAVEFORMATEX WaveFormatEx, IN ACCESS_MASK DesiredAccess, OUT PHANDLE PinHandle)
NTSTATUS WdmAudOpenSysaudio(IN PDEVICE_OBJECT DeviceObject, IN PWDMAUD_CLIENT *pClient)
Definition: deviface.c:206
Definition: wdmaud.h:45
INT POOL_TYPE
Definition: typedefs.h:76
static const UCHAR Index[8]
Definition: usbohci.c:18
_In_ ULONG _In_ ULONG _In_ ULONG Length
Definition: ntddpcm.h:101
* PFILE_OBJECT
Definition: iotypes.h:1955
NTSTATUS OpenDevice(IN LPWSTR Device, OUT PHANDLE DeviceHandle, OUT PFILE_OBJECT *FileObject)
Definition: sup.c:405
MMRESULT WdmAudGetLineControls(IN HANDLE hMixer, IN DWORD MixerId, IN LPMIXERLINECONTROLSW MixControls, IN ULONG Flags)
Definition: mmixer.c:418
NTSTATUS WdmAudMixerInitialize(IN PDEVICE_OBJECT DeviceObject)
Definition: mmixer.c:380
LIST_ENTRY SysAudioDeviceList
Definition: wdmaud.h:60
struct EVENT_ENTRY * PEVENT_ENTRY
struct SYSAUDIO_ENTRY * PSYSAUDIO_ENTRY
PVOID *typedef PHANDLE
Definition: ntsecpkg.h:414
Definition: typedefs.h:117
NTSTATUS NTAPI WdmAudFrameSize(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp, IN PWDMAUD_DEVICE_INFO DeviceInfo, IN PWDMAUD_CLIENT ClientInfo)
Definition: control.c:180
ULONG GetNumOfMixerDevices(IN PDEVICE_OBJECT DeviceObject)
ULONG WdmAudGetMixerDeviceCount(VOID)
ULONG WdmAudGetWaveInDeviceCount(VOID)
NTSTATUS WdmAudWaveCapabilities(IN PDEVICE_OBJECT DeviceObject, IN PWDMAUD_DEVICE_INFO DeviceInfo, IN PWDMAUD_CLIENT ClientInfo, IN PWDMAUD_DEVICE_EXTENSION DeviceExtension)
Definition: mmixer.c:721
KSPIN_LOCK Lock
Definition: wdmaud.h:58
Status
Definition: gdiplustypes.h:24
PFILE_OBJECT FileObject
Definition: wdmaud.h:62
UNICODE_STRING SymbolicLink
Definition: wdmaud.h:48
NTSTATUS WdmAudRegisterDeviceInterface(IN PDEVICE_OBJECT PhysicalDeviceObject, IN PWDMAUD_DEVICE_EXTENSION DeviceExtension)
Definition: deviface.c:186
IN PDEVICE_OBJECT DeviceObject
Definition: fatprocs.h:1560
ULONG_PTR SIZE_T
Definition: typedefs.h:78
PRKEVENT NotifyEvent
Definition: wdmaud.h:24
NTSTATUS OpenSysAudioDeviceByIndex(IN PDEVICE_OBJECT DeviceObject, IN ULONG DeviceIndex, IN PHANDLE DeviceHandle, IN PFILE_OBJECT *FileObject)
PWDMAUD_DEVICE_EXTENSION DeviceExtension
Definition: wdmaud.h:76
_In_ PIO_STACK_LOCATION _Inout_ PFILE_OBJECT _Inout_ PVCB _Outptr_result_maybenull_ PDCB _In_ PDCB _In_ PDIRENT _In_ ULONG _In_ ULONG _In_ PUNICODE_STRING _In_ PACCESS_MASK DesiredAccess
Definition: create.c:4157
ULONG KSPIN_LOCK
Definition: env_spec_w32.h:72
NTSTATUS NTAPI WdmAudWaveInitialize(IN PDEVICE_OBJECT DeviceObject)
PDEVICE_OBJECT NextDeviceObject
Definition: wdmaud.h:70
struct WDMAUD_COMPLETION_CONTEXT * PWDMAUD_COMPLETION_CONTEXT
SOUND_DEVICE_TYPE
Definition: sndtypes.h:25
LIST_ENTRY Entry
Definition: wdmaud.h:29
ULONG PinId
Definition: wdmaud.h:23
#define OUT
Definition: typedefs.h:39
ULONG NotificationType
Definition: wdmaud.h:40
_Must_inspect_result_ typedef _In_ PHYSICAL_ADDRESS _Inout_ PLARGE_INTEGER NumberOfBytes
Definition: iotypes.h:998
unsigned int ULONG
Definition: retypes.h:1
NTSTATUS SetIrpIoStatus(IN PIRP Irp, IN NTSTATUS Status, IN ULONG Length)
Definition: sup.c:67
NTSTATUS FindProductName(IN LPWSTR PnpName, IN ULONG ProductNameSize, OUT LPWSTR ProductName)
Definition: sup.c:254
NTSTATUS NTAPI WdmAudWrite(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
WCHAR * LPWSTR
Definition: xmlstorage.h:184
MMRESULT WdmAudSetControlDetails(IN HANDLE hMixer, IN DWORD MixerId, IN LPMIXERCONTROLDETAILS MixDetails, IN ULONG Flags)
Definition: mmixer.c:431
static PNP_ID_NAME PnpName[]
Definition: pnpdump.c:52
PVOID SysAudioNotification
Definition: wdmaud.h:54
_Must_inspect_result_ _In_ FLT_CONTEXT_TYPE _In_ SIZE_T _In_ POOL_TYPE PoolType
Definition: fltkernel.h:1444
LIST_ENTRY WdmAudClientList
Definition: wdmaud.h:63
MMRESULT WdmAudGetControlDetails(IN HANDLE hMixer, IN DWORD MixerId, IN LPMIXERCONTROLDETAILS MixDetails, IN ULONG Flags)
Definition: mmixer.c:445
ULONG ACCESS_MASK
Definition: nt_native.h:40
Definition: wdmaud.h:37
BOOL DeviceInterfaceSupport
Definition: wdmaud.h:56