source: Daodan/MSYS2/mingw32/i686-w64-mingw32/include/ddk/bdasup.h@ 1167

Last change on this file since 1167 was 1166, checked in by rossy, 3 years ago

Daodan: Replace MinGW build env with an up-to-date MSYS2 env

File size: 4.0 KB
Line 
1#pragma once
2
3#if (NTDDI_VERSION >= NTDDI_WINXP)
4
5#if defined(__cplusplus)
6extern "C" {
7#endif
8
9#if defined(_ARM_)
10#define STDMETHODCALLTYPE
11#else
12#define STDMETHODCALLTYPE __stdcall
13#endif
14
15#ifndef _WDMDDK_
16typedef GUID *PGUID;
17#endif
18
19/* Types */
20
21typedef ULONG BDA_TOPOLOGY_JOINT, *PBDA_TOPOLOGY_JOINT;
22
23typedef struct _BDA_PIN_PAIRING {
24 ULONG ulInputPin;
25 ULONG ulOutputPin;
26 ULONG ulcMaxInputsPerOutput;
27 ULONG ulcMinInputsPerOutput;
28 ULONG ulcMaxOutputsPerInput;
29 ULONG ulcMinOutputsPerInput;
30 ULONG ulcTopologyJoints;
31 const ULONG *pTopologyJoints;
32} BDA_PIN_PAIRING, *PBDA_PIN_PAIRING;
33
34typedef struct _BDA_FILTER_TEMPLATE {
35 const KSFILTER_DESCRIPTOR *pFilterDescriptor;
36 ULONG ulcPinPairs;
37 const BDA_PIN_PAIRING *pPinPairs;
38} BDA_FILTER_TEMPLATE, *PBDA_FILTER_TEMPLATE;
39
40typedef struct _KSM_PIN_PAIR {
41 KSMETHOD Method;
42 ULONG InputPinId;
43 ULONG OutputPinId;
44 ULONG Reserved;
45} KSM_PIN_PAIR, * PKSM_PIN_PAIR;
46
47typedef struct _KSM_PIN {
48 KSMETHOD Method;
49 __GNU_EXTENSION union {
50 ULONG PinId;
51 ULONG PinType;
52 };
53 ULONG Reserved;
54} KSM_PIN, * PKSM_PIN;
55
56/* Functions */
57
58STDMETHODIMP_(NTSTATUS)
59BdaCheckChanges(
60 IN PIRP Irp);
61
62STDMETHODIMP_(NTSTATUS)
63BdaCommitChanges(
64 IN PIRP Irp);
65
66STDMETHODIMP_(NTSTATUS)
67BdaCreateFilterFactory(
68 IN PKSDEVICE pKSDevice,
69 IN const KSFILTER_DESCRIPTOR *pFilterDescriptor,
70 IN const BDA_FILTER_TEMPLATE *pBdaFilterTemplate);
71
72STDMETHODIMP_(NTSTATUS)
73BdaCreateFilterFactoryEx(
74 IN PKSDEVICE pKSDevice,
75 IN const KSFILTER_DESCRIPTOR *pFilterDescriptor,
76 IN const BDA_FILTER_TEMPLATE *pBdaFilterTemplate,
77 OUT PKSFILTERFACTORY *ppKSFilterFactory);
78
79STDMETHODIMP_(NTSTATUS)
80BdaCreatePin(
81 IN PKSFILTER pKSFilter,
82 IN ULONG ulPinType,
83 OUT ULONG *pulPinId);
84
85STDMETHODIMP_(NTSTATUS)
86BdaCreateTopology(
87 IN PKSFILTER pKSFilter,
88 IN ULONG InputPinId,
89 IN ULONG OutputPinId);
90
91STDMETHODIMP_(NTSTATUS)
92BdaDeletePin(
93 IN PKSFILTER pKSFilter,
94 IN ULONG *pulPinId);
95
96STDMETHODIMP_(NTSTATUS)
97BdaFilterFactoryUpdateCacheData(
98 IN PKSFILTERFACTORY pFilterFactory,
99 IN const KSFILTER_DESCRIPTOR *pFilterDescriptor OPTIONAL);
100
101STDMETHODIMP_(NTSTATUS)
102BdaGetChangeState(
103 IN PIRP Irp,
104 OUT BDA_CHANGE_STATE *pChangeState);
105
106STDMETHODIMP_(NTSTATUS)
107BdaInitFilter(
108 IN PKSFILTER pKSFilter,
109 IN const BDA_FILTER_TEMPLATE *pBdaFilterTemplate);
110
111STDMETHODIMP_(NTSTATUS)
112BdaMethodCreatePin(
113 IN PIRP Irp,
114 IN KSMETHOD *pKSMethod,
115 OUT ULONG *pulPinFactoryID);
116
117STDMETHODIMP_(NTSTATUS)
118BdaMethodCreateTopology(
119 IN PIRP Irp,
120 IN KSMETHOD *pKSMethod,
121 OPTIONAL PVOID pvIgnored);
122
123STDMETHODIMP_(NTSTATUS)
124BdaMethodDeletePin(
125 IN PIRP Irp,
126 IN KSMETHOD *pKSMethod,
127 OPTIONAL PVOID pvIgnored);
128
129STDMETHODIMP_(NTSTATUS)
130BdaPropertyGetControllingPinId(
131 IN PIRP Irp,
132 IN KSP_BDA_NODE_PIN *pProperty,
133 OUT ULONG *pulControllingPinId);
134
135STDMETHODIMP_(NTSTATUS)
136BdaPropertyGetPinControl(
137 IN PIRP Irp,
138 IN KSPROPERTY *pKSProperty,
139 OUT ULONG *pulProperty);
140
141STDMETHODIMP_(NTSTATUS)
142BdaPropertyNodeDescriptors(
143 IN PIRP Irp,
144 IN KSPROPERTY *pKSProperty,
145 OUT BDANODE_DESCRIPTOR *pNodeDescriptorProperty);
146
147STDMETHODIMP_(NTSTATUS)
148BdaPropertyNodeEvents(
149 IN PIRP Irp,
150 IN KSP_NODE *pKSProperty,
151 OUT GUID *pguidProperty);
152
153STDMETHODIMP_(NTSTATUS)
154BdaPropertyNodeMethods(
155 IN PIRP Irp,
156 IN KSP_NODE *pKSProperty,
157 OUT GUID *pguidProperty);
158
159STDMETHODIMP_(NTSTATUS)
160BdaPropertyNodeProperties(
161 IN PIRP Irp,
162 IN KSP_NODE *pKSProperty,
163 OUT GUID *pguidProperty);
164
165STDMETHODIMP_(NTSTATUS)
166BdaPropertyNodeTypes(
167 IN PIRP Irp,
168 IN KSPROPERTY *pKSProperty,
169 OUT ULONG *pulProperty);
170
171STDMETHODIMP_(NTSTATUS)
172BdaPropertyPinTypes(
173 IN PIRP Irp,
174 IN KSPROPERTY *pKSProperty,
175 OUT ULONG *pulProperty);
176
177STDMETHODIMP_(NTSTATUS)
178BdaPropertyTemplateConnections(
179 IN PIRP Irp,
180 IN KSPROPERTY *pKSProperty,
181 OUT KSTOPOLOGY_CONNECTION *pConnectionProperty);
182
183STDMETHODIMP_(NTSTATUS)
184BdaStartChanges(
185 IN PIRP Irp);
186
187STDMETHODIMP_(NTSTATUS)
188BdaUninitFilter(
189 IN PKSFILTER pKSFilter);
190
191STDMETHODIMP_(NTSTATUS)
192BdaValidateNodeProperty(
193 IN PIRP Irp,
194 IN KSPROPERTY *pKSProperty);
195
196#if defined(__cplusplus)
197}
198#endif
199
200#endif /* (NTDDI_VERSION >= NTDDI_WINXP) */
Note: See TracBrowser for help on using the repository browser.