- Fix a bug in KsAllocateDeviceHeader which copied the create item to the wrong offset
[reactos.git] / reactos / drivers / wdm / audio / legacy / wdmaud / wdmaud.h
1 #ifndef WDMAUD_H__
2 #define WDMAUD_H__
3
4 #include <pseh/pseh2.h>
5 #include <ntddk.h>
6 #include <portcls.h>
7 #include <ks.h>
8 #define YDEBUG
9 #include <debug.h>
10 #include <ksmedia.h>
11
12
13 #ifndef MAXPNAMELEN
14 #define MAXPNAMELEN 32
15 #endif
16
17 #ifndef WAVEOUTCAPS
18
19 typedef struct
20 {
21 USHORT wMid;
22 USHORT wPid;
23 ULONG vDriverVersion;
24 WCHAR szPname[MAXPNAMELEN];
25 ULONG dwFormats;
26 USHORT wChannels;
27 USHORT wReserved1;
28 ULONG dwSupport;
29 } WAVEOUTCAPS;
30
31 #endif
32
33 #ifndef AUXCAPS
34
35 typedef struct {
36 USHORT wMid;
37 USHORT wPid;
38 ULONG vDriverVersion;
39 WCHAR szPname[MAXPNAMELEN];
40 USHORT wTechnology;
41 USHORT wReserved1;
42 ULONG dwSupport;
43 } AUXCAPS;
44
45 #endif
46
47 #ifndef WAVEINCAPS
48
49 typedef struct
50 {
51 USHORT wMid;
52 USHORT wPid;
53 ULONG vDriverVersion;
54 WCHAR szPname[MAXPNAMELEN];
55 ULONG dwFormats;
56 USHORT wChannels;
57 USHORT wReserved1;
58 } WAVEINCAPS;
59 #endif
60
61 #include "interface.h"
62
63 typedef struct
64 {
65 HANDLE hProcess;
66 HANDLE hSysAudio;
67 PFILE_OBJECT FileObject;
68
69 }WDMAUD_CLIENT, *PWDMAUD_CLIENT;
70
71 typedef struct
72 {
73 LIST_ENTRY Entry;
74 UNICODE_STRING SymbolicLink;
75 }SYSAUDIO_ENTRY, *PSYSAUDIO_ENTRY;
76
77 typedef struct
78 {
79 KSDEVICE_HEADER DeviceHeader;
80 PVOID SysAudioNotification;
81
82 BOOL DeviceInterfaceSupport;
83
84 KSPIN_LOCK Lock;
85 ULONG NumSysAudioDevices;
86 LIST_ENTRY SysAudioDeviceList;
87
88 }WDMAUD_DEVICE_EXTENSION, *PWDMAUD_DEVICE_EXTENSION;
89
90 typedef struct
91 {
92 PIRP Irp;
93 IO_STATUS_BLOCK StatusBlock;
94 ULONG Length;
95 }WRITE_CONTEXT, *PWRITE_CONTEXT;
96
97
98 NTSTATUS
99 WdmAudRegisterDeviceInterface(
100 IN PDEVICE_OBJECT PhysicalDeviceObject,
101 IN PWDMAUD_DEVICE_EXTENSION DeviceExtension);
102
103 NTSTATUS
104 WdmAudOpenSysAudioDevices(
105 IN PDEVICE_OBJECT DeviceObject,
106 IN PWDMAUD_DEVICE_EXTENSION DeviceExtension);
107
108 NTSTATUS
109 WdmAudOpenSysaudio(
110 IN PDEVICE_OBJECT DeviceObject,
111 IN PWDMAUD_CLIENT *pClient);
112
113 NTSTATUS
114 NTAPI
115 WdmAudDeviceControl(
116 IN PDEVICE_OBJECT DeviceObject,
117 IN PIRP Irp);
118
119 #endif