[DDK][PSDK] Add some missing NDIS definitions/types. Caught by Benjamin Aerni.
[reactos.git] / sdk / include / ddk / bdasup.h
1 #pragma once
2
3 #if (NTDDI_VERSION >= NTDDI_WINXP)
4
5 #if defined(__cplusplus)
6 extern "C" {
7 #endif
8
9 #define STDMETHODCALLTYPE __stdcall
10
11 #ifndef _WDMDDK_
12 typedef GUID *PGUID;
13 #endif
14
15 /* Types */
16
17 typedef ULONG BDA_TOPOLOGY_JOINT, *PBDA_TOPOLOGY_JOINT;
18
19 typedef struct _BDA_PIN_PAIRING {
20 ULONG ulInputPin;
21 ULONG ulOutputPin;
22 ULONG ulcMaxInputsPerOutput;
23 ULONG ulcMinInputsPerOutput;
24 ULONG ulcMaxOutputsPerInput;
25 ULONG ulcMinOutputsPerInput;
26 ULONG ulcTopologyJoints;
27 const ULONG *pTopologyJoints;
28 } BDA_PIN_PAIRING, *PBDA_PIN_PAIRING;
29
30 typedef struct _BDA_FILTER_TEMPLATE {
31 const KSFILTER_DESCRIPTOR *pFilterDescriptor;
32 ULONG ulcPinPairs;
33 const BDA_PIN_PAIRING *pPinPairs;
34 } BDA_FILTER_TEMPLATE, *PBDA_FILTER_TEMPLATE;
35
36 typedef struct _KSM_PIN_PAIR {
37 KSMETHOD Method;
38 ULONG InputPinId;
39 ULONG OutputPinId;
40 ULONG Reserved;
41 } KSM_PIN_PAIR, * PKSM_PIN_PAIR;
42
43 typedef struct _KSM_PIN {
44 KSMETHOD Method;
45 __GNU_EXTENSION union {
46 ULONG PinId;
47 ULONG PinType;
48 };
49 ULONG Reserved;
50 } KSM_PIN, * PKSM_PIN;
51
52 /* Functions */
53
54 _Must_inspect_result_
55 _IRQL_requires_(PASSIVE_LEVEL)
56 STDMETHODIMP_(NTSTATUS)
57 BdaCheckChanges(
58 _In_ PIRP Irp);
59
60 _Must_inspect_result_
61 _IRQL_requires_(PASSIVE_LEVEL)
62 STDMETHODIMP_(NTSTATUS)
63 BdaCommitChanges(
64 _In_ PIRP Irp);
65
66 _Must_inspect_result_
67 _IRQL_requires_(PASSIVE_LEVEL)
68 STDMETHODIMP_(NTSTATUS)
69 BdaCreateFilterFactory(
70 _In_ PKSDEVICE pKSDevice,
71 _In_ const KSFILTER_DESCRIPTOR *pFilterDescriptor,
72 _In_ const BDA_FILTER_TEMPLATE *pBdaFilterTemplate);
73
74 _Must_inspect_result_
75 _IRQL_requires_(PASSIVE_LEVEL)
76 STDMETHODIMP_(NTSTATUS)
77 BdaCreateFilterFactoryEx(
78 _In_ PKSDEVICE pKSDevice,
79 _In_ const KSFILTER_DESCRIPTOR *pFilterDescriptor,
80 _In_ const BDA_FILTER_TEMPLATE *pBdaFilterTemplate,
81 _Out_opt_ PKSFILTERFACTORY *ppKSFilterFactory);
82
83 _Must_inspect_result_
84 _IRQL_requires_(PASSIVE_LEVEL)
85 STDMETHODIMP_(NTSTATUS)
86 BdaCreatePin(
87 _In_ PKSFILTER pKSFilter,
88 _In_ ULONG ulPinType,
89 _Out_opt_ ULONG *pulPinId);
90
91 _Must_inspect_result_
92 _IRQL_requires_(PASSIVE_LEVEL)
93 STDMETHODIMP_(NTSTATUS)
94 BdaCreateTopology(
95 _In_ PKSFILTER pKSFilter,
96 _In_ ULONG InputPinId,
97 _In_ ULONG OutputPinId);
98
99 _Must_inspect_result_
100 _IRQL_requires_(PASSIVE_LEVEL)
101 STDMETHODIMP_(NTSTATUS)
102 BdaDeletePin(
103 _In_ PKSFILTER pKSFilter,
104 _Out_opt_ ULONG *pulPinId);
105
106 _Must_inspect_result_
107 _IRQL_requires_(PASSIVE_LEVEL)
108 STDMETHODIMP_(NTSTATUS)
109 BdaFilterFactoryUpdateCacheData(
110 _In_ PKSFILTERFACTORY pFilterFactory,
111 _In_opt_ const KSFILTER_DESCRIPTOR *pFilterDescriptor);
112
113 _Must_inspect_result_
114 _IRQL_requires_(PASSIVE_LEVEL)
115 STDMETHODIMP_(NTSTATUS)
116 BdaGetChangeState(
117 _In_ PIRP Irp,
118 _Out_opt_ BDA_CHANGE_STATE *pChangeState);
119
120 _Must_inspect_result_
121 _IRQL_requires_(PASSIVE_LEVEL)
122 STDMETHODIMP_(NTSTATUS)
123 BdaInitFilter(
124 _In_ PKSFILTER pKSFilter,
125 _In_ const BDA_FILTER_TEMPLATE *pBdaFilterTemplate);
126
127 _Must_inspect_result_
128 _IRQL_requires_(PASSIVE_LEVEL)
129 STDMETHODIMP_(NTSTATUS)
130 BdaMethodCreatePin(
131 _In_ PIRP Irp,
132 _In_ KSMETHOD *pKSMethod,
133 _Out_opt_ ULONG *pulPinFactoryID);
134
135 _Must_inspect_result_
136 _IRQL_requires_(PASSIVE_LEVEL)
137 STDMETHODIMP_(NTSTATUS)
138 BdaMethodCreateTopology(
139 _In_ PIRP Irp,
140 _In_ KSMETHOD *pKSMethod,
141 PVOID pvIgnored);
142
143 _Must_inspect_result_
144 _IRQL_requires_(PASSIVE_LEVEL)
145 STDMETHODIMP_(NTSTATUS)
146 BdaMethodDeletePin(
147 _In_ PIRP Irp,
148 _In_ KSMETHOD *pKSMethod,
149 PVOID pvIgnored);
150
151 _Must_inspect_result_
152 _IRQL_requires_(PASSIVE_LEVEL)
153 STDMETHODIMP_(NTSTATUS)
154 BdaPropertyGetControllingPinId(
155 _In_ PIRP Irp,
156 _In_ KSP_BDA_NODE_PIN *pProperty,
157 _Out_opt_ ULONG *pulControllingPinId);
158
159 _Must_inspect_result_
160 _IRQL_requires_(PASSIVE_LEVEL)
161 STDMETHODIMP_(NTSTATUS)
162 BdaPropertyGetPinControl(
163 _In_ PIRP Irp,
164 _In_ KSPROPERTY *pKSProperty,
165 _Out_opt_ ULONG *pulProperty);
166
167 _Must_inspect_result_
168 _IRQL_requires_(PASSIVE_LEVEL)
169 STDMETHODIMP_(NTSTATUS)
170 BdaPropertyNodeDescriptors(
171 _In_ PIRP Irp,
172 _In_ KSPROPERTY *pKSProperty,
173 _Out_opt_ BDANODE_DESCRIPTOR *pNodeDescriptorProperty);
174
175 _Must_inspect_result_
176 _IRQL_requires_(PASSIVE_LEVEL)
177 STDMETHODIMP_(NTSTATUS)
178 BdaPropertyNodeEvents(
179 _In_ PIRP Irp,
180 _In_ KSP_NODE *pKSProperty,
181 _Out_opt_ GUID *pguidProperty);
182
183 _Must_inspect_result_
184 _IRQL_requires_(PASSIVE_LEVEL)
185 STDMETHODIMP_(NTSTATUS)
186 BdaPropertyNodeMethods(
187 _In_ PIRP Irp,
188 _In_ KSP_NODE *pKSProperty,
189 _Out_opt_ GUID *pguidProperty);
190
191 _Must_inspect_result_
192 _IRQL_requires_(PASSIVE_LEVEL)
193 STDMETHODIMP_(NTSTATUS)
194 BdaPropertyNodeProperties(
195 _In_ PIRP Irp,
196 _In_ KSP_NODE *pKSProperty,
197 _Out_opt_ GUID *pguidProperty);
198
199 _Must_inspect_result_
200 _IRQL_requires_(PASSIVE_LEVEL)
201 STDMETHODIMP_(NTSTATUS)
202 BdaPropertyNodeTypes(
203 _In_ PIRP Irp,
204 _In_ KSPROPERTY *pKSProperty,
205 _Out_writes_bytes_(OutputBufferLenFromIrp(Irp)) ULONG *pulProperty);
206
207 _Must_inspect_result_
208 _IRQL_requires_(PASSIVE_LEVEL)
209 STDMETHODIMP_(NTSTATUS)
210 BdaPropertyPinTypes(
211 _In_ PIRP Irp,
212 _In_ KSPROPERTY *pKSProperty,
213 _Out_writes_bytes_(OutputBufferLenFromIrp(Irp)) ULONG *pulProperty);
214
215 _Must_inspect_result_
216 _IRQL_requires_(PASSIVE_LEVEL)
217 STDMETHODIMP_(NTSTATUS)
218 BdaPropertyTemplateConnections(
219 _In_ PIRP Irp,
220 _In_ KSPROPERTY *pKSProperty,
221 _Out_opt_ KSTOPOLOGY_CONNECTION *pConnectionProperty);
222
223 _Must_inspect_result_
224 _IRQL_requires_(PASSIVE_LEVEL)
225 STDMETHODIMP_(NTSTATUS)
226 BdaStartChanges(
227 _In_ PIRP Irp);
228
229 _Must_inspect_result_
230 _IRQL_requires_(PASSIVE_LEVEL)
231 STDMETHODIMP_(NTSTATUS)
232 BdaUninitFilter(
233 _In_ PKSFILTER pKSFilter);
234
235 _Must_inspect_result_
236 _IRQL_requires_(PASSIVE_LEVEL)
237 STDMETHODIMP_(NTSTATUS)
238 BdaValidateNodeProperty(
239 _In_ PIRP Irp,
240 _In_ KSPROPERTY *pKSProperty);
241
242 #if defined(__cplusplus)
243 }
244 #endif
245
246 #endif /* (NTDDI_VERSION >= NTDDI_WINXP) */