[USBAUDIO]
[reactos.git] / reactos / drivers / usb / usbaudio / usbaudio.h
1 #pragma once
2
3 #include <ntddk.h>
4 #include <portcls.h>
5 #include <ksmedia.h>
6 #include <hubbusif.h>
7 #include <usbbusif.h>
8 #include <usbioctl.h>
9 #include <usb.h>
10 #include <usbdlib.h>
11 #include <debug.h>
12
13 #define USBAUDIO_TAG 'AbsU'
14
15 typedef struct __DEVICE_EXTENSION__
16 {
17 PDEVICE_OBJECT LowerDevice; /* lower device*/
18 PUSB_CONFIGURATION_DESCRIPTOR ConfigurationDescriptor; /* usb configuration descriptor */
19 PUSB_DEVICE_DESCRIPTOR DeviceDescriptor; /* usb device descriptor */
20 PUSBD_INTERFACE_INFORMATION InterfaceInfo; /* interface information */
21 USBD_CONFIGURATION_HANDLE ConfigurationHandle; /* configuration handle */
22
23 }DEVICE_EXTENSION, *PDEVICE_EXTENSION;
24
25 /* pool.c */
26 PVOID
27 NTAPI
28 AllocFunction(
29 IN ULONG ItemSize);
30
31 VOID
32 NTAPI
33 FreeFunction(
34 IN PVOID Item);
35
36 /* usbaudio.c */
37
38 NTSTATUS
39 NTAPI
40 USBAudioAddDevice(
41 _In_ PKSDEVICE Device
42 );
43
44 NTSTATUS
45 NTAPI
46 USBAudioPnPStart(
47 _In_ PKSDEVICE Device,
48 _In_ PIRP Irp,
49 _In_opt_ PCM_RESOURCE_LIST TranslatedResourceList,
50 _In_opt_ PCM_RESOURCE_LIST UntranslatedResourceList
51 );
52
53 NTSTATUS
54 NTAPI
55 USBAudioPnPQueryStop(
56 _In_ PKSDEVICE Device,
57 _In_ PIRP Irp
58 );
59
60 VOID
61 NTAPI
62 USBAudioPnPCancelStop(
63 _In_ PKSDEVICE Device,
64 _In_ PIRP Irp
65 );
66
67 VOID
68 NTAPI
69 USBAudioPnPStop(
70 _In_ PKSDEVICE Device,
71 _In_ PIRP Irp
72 );
73
74 NTSTATUS
75 NTAPI
76 USBAudioPnPQueryRemove(
77 _In_ PKSDEVICE Device,
78 _In_ PIRP Irp
79 );
80
81 VOID
82 NTAPI
83 USBAudioPnPCancelRemove(
84 _In_ PKSDEVICE Device,
85 _In_ PIRP Irp
86 );
87
88 VOID
89 NTAPI
90 USBAudioPnPRemove(
91 _In_ PKSDEVICE Device,
92 _In_ PIRP Irp
93 );
94
95 NTSTATUS
96 NTAPI
97 USBAudioPnPQueryCapabilities(
98 _In_ PKSDEVICE Device,
99 _In_ PIRP Irp,
100 _Inout_ PDEVICE_CAPABILITIES Capabilities
101 );
102
103 VOID
104 NTAPI
105 USBAudioPnPSurpriseRemoval(
106 _In_ PKSDEVICE Device,
107 _In_ PIRP Irp
108 );
109
110 NTSTATUS
111 NTAPI
112 USBAudioPnPQueryPower(
113 _In_ PKSDEVICE Device,
114 _In_ PIRP Irp,
115 _In_ DEVICE_POWER_STATE DeviceTo,
116 _In_ DEVICE_POWER_STATE DeviceFrom,
117 _In_ SYSTEM_POWER_STATE SystemTo,
118 _In_ SYSTEM_POWER_STATE SystemFrom,
119 _In_ POWER_ACTION Action
120 );
121
122 VOID
123 NTAPI
124 USBAudioPnPSetPower(
125 _In_ PKSDEVICE Device,
126 _In_ PIRP Irp,
127 _In_ DEVICE_POWER_STATE To,
128 _In_ DEVICE_POWER_STATE From
129 );