3 #if (NTDDI_VERSION >= NTDDI_WINXP)
5 #if defined(__cplusplus)
9 #define STDMETHODCALLTYPE __stdcall
17 typedef ULONG BDA_TOPOLOGY_JOINT
, *PBDA_TOPOLOGY_JOINT
;
19 typedef struct _BDA_PIN_PAIRING
{
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
;
30 typedef struct _BDA_FILTER_TEMPLATE
{
31 const KSFILTER_DESCRIPTOR
*pFilterDescriptor
;
33 const BDA_PIN_PAIRING
*pPinPairs
;
34 } BDA_FILTER_TEMPLATE
, *PBDA_FILTER_TEMPLATE
;
36 typedef struct _KSM_PIN_PAIR
{
41 } KSM_PIN_PAIR
, * PKSM_PIN_PAIR
;
43 typedef struct _KSM_PIN
{
45 __GNU_EXTENSION
union {
50 } KSM_PIN
, * PKSM_PIN
;
55 _IRQL_requires_(PASSIVE_LEVEL
)
56 STDMETHODIMP_(NTSTATUS
)
61 _IRQL_requires_(PASSIVE_LEVEL
)
62 STDMETHODIMP_(NTSTATUS
)
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
);
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
);
84 _IRQL_requires_(PASSIVE_LEVEL
)
85 STDMETHODIMP_(NTSTATUS
)
87 _In_ PKSFILTER pKSFilter
,
89 _Out_opt_ ULONG
*pulPinId
);
92 _IRQL_requires_(PASSIVE_LEVEL
)
93 STDMETHODIMP_(NTSTATUS
)
95 _In_ PKSFILTER pKSFilter
,
96 _In_ ULONG InputPinId
,
97 _In_ ULONG OutputPinId
);
100 _IRQL_requires_(PASSIVE_LEVEL
)
101 STDMETHODIMP_(NTSTATUS
)
103 _In_ PKSFILTER pKSFilter
,
104 _Out_opt_ ULONG
*pulPinId
);
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
);
113 _Must_inspect_result_
114 _IRQL_requires_(PASSIVE_LEVEL
)
115 STDMETHODIMP_(NTSTATUS
)
118 _Out_opt_ BDA_CHANGE_STATE
*pChangeState
);
120 _Must_inspect_result_
121 _IRQL_requires_(PASSIVE_LEVEL
)
122 STDMETHODIMP_(NTSTATUS
)
124 _In_ PKSFILTER pKSFilter
,
125 _In_
const BDA_FILTER_TEMPLATE
*pBdaFilterTemplate
);
127 _Must_inspect_result_
128 _IRQL_requires_(PASSIVE_LEVEL
)
129 STDMETHODIMP_(NTSTATUS
)
132 _In_ KSMETHOD
*pKSMethod
,
133 _Out_opt_ ULONG
*pulPinFactoryID
);
135 _Must_inspect_result_
136 _IRQL_requires_(PASSIVE_LEVEL
)
137 STDMETHODIMP_(NTSTATUS
)
138 BdaMethodCreateTopology(
140 _In_ KSMETHOD
*pKSMethod
,
143 _Must_inspect_result_
144 _IRQL_requires_(PASSIVE_LEVEL
)
145 STDMETHODIMP_(NTSTATUS
)
148 _In_ KSMETHOD
*pKSMethod
,
151 _Must_inspect_result_
152 _IRQL_requires_(PASSIVE_LEVEL
)
153 STDMETHODIMP_(NTSTATUS
)
154 BdaPropertyGetControllingPinId(
156 _In_ KSP_BDA_NODE_PIN
*pProperty
,
157 _Out_opt_ ULONG
*pulControllingPinId
);
159 _Must_inspect_result_
160 _IRQL_requires_(PASSIVE_LEVEL
)
161 STDMETHODIMP_(NTSTATUS
)
162 BdaPropertyGetPinControl(
164 _In_ KSPROPERTY
*pKSProperty
,
165 _Out_opt_ ULONG
*pulProperty
);
167 _Must_inspect_result_
168 _IRQL_requires_(PASSIVE_LEVEL
)
169 STDMETHODIMP_(NTSTATUS
)
170 BdaPropertyNodeDescriptors(
172 _In_ KSPROPERTY
*pKSProperty
,
173 _Out_opt_ BDANODE_DESCRIPTOR
*pNodeDescriptorProperty
);
175 _Must_inspect_result_
176 _IRQL_requires_(PASSIVE_LEVEL
)
177 STDMETHODIMP_(NTSTATUS
)
178 BdaPropertyNodeEvents(
180 _In_ KSP_NODE
*pKSProperty
,
181 _Out_opt_ GUID
*pguidProperty
);
183 _Must_inspect_result_
184 _IRQL_requires_(PASSIVE_LEVEL
)
185 STDMETHODIMP_(NTSTATUS
)
186 BdaPropertyNodeMethods(
188 _In_ KSP_NODE
*pKSProperty
,
189 _Out_opt_ GUID
*pguidProperty
);
191 _Must_inspect_result_
192 _IRQL_requires_(PASSIVE_LEVEL
)
193 STDMETHODIMP_(NTSTATUS
)
194 BdaPropertyNodeProperties(
196 _In_ KSP_NODE
*pKSProperty
,
197 _Out_opt_ GUID
*pguidProperty
);
199 _Must_inspect_result_
200 _IRQL_requires_(PASSIVE_LEVEL
)
201 STDMETHODIMP_(NTSTATUS
)
202 BdaPropertyNodeTypes(
204 _In_ KSPROPERTY
*pKSProperty
,
205 _Out_writes_bytes_(OutputBufferLenFromIrp(Irp
)) ULONG
*pulProperty
);
207 _Must_inspect_result_
208 _IRQL_requires_(PASSIVE_LEVEL
)
209 STDMETHODIMP_(NTSTATUS
)
212 _In_ KSPROPERTY
*pKSProperty
,
213 _Out_writes_bytes_(OutputBufferLenFromIrp(Irp
)) ULONG
*pulProperty
);
215 _Must_inspect_result_
216 _IRQL_requires_(PASSIVE_LEVEL
)
217 STDMETHODIMP_(NTSTATUS
)
218 BdaPropertyTemplateConnections(
220 _In_ KSPROPERTY
*pKSProperty
,
221 _Out_opt_ KSTOPOLOGY_CONNECTION
*pConnectionProperty
);
223 _Must_inspect_result_
224 _IRQL_requires_(PASSIVE_LEVEL
)
225 STDMETHODIMP_(NTSTATUS
)
229 _Must_inspect_result_
230 _IRQL_requires_(PASSIVE_LEVEL
)
231 STDMETHODIMP_(NTSTATUS
)
233 _In_ PKSFILTER pKSFilter
);
235 _Must_inspect_result_
236 _IRQL_requires_(PASSIVE_LEVEL
)
237 STDMETHODIMP_(NTSTATUS
)
238 BdaValidateNodeProperty(
240 _In_ KSPROPERTY
*pKSProperty
);
242 #if defined(__cplusplus)
246 #endif /* (NTDDI_VERSION >= NTDDI_WINXP) */