3 #if (NTDDI_VERSION >= NTDDI_WINXP)
5 #if defined(__cplusplus)
9 /* Helper macro to enable gcc's extension. */
10 #ifndef __GNU_EXTENSION
12 #define __GNU_EXTENSION __extension__
14 #define __GNU_EXTENSION
18 #define STDMETHODCALLTYPE __stdcall
26 typedef ULONG BDA_TOPOLOGY_JOINT
, *PBDA_TOPOLOGY_JOINT
;
28 typedef struct _BDA_PIN_PAIRING
{
31 ULONG ulcMaxInputsPerOutput
;
32 ULONG ulcMinInputsPerOutput
;
33 ULONG ulcMaxOutputsPerInput
;
34 ULONG ulcMinOutputsPerInput
;
35 ULONG ulcTopologyJoints
;
36 const ULONG
*pTopologyJoints
;
37 } BDA_PIN_PAIRING
, *PBDA_PIN_PAIRING
;
39 typedef struct _BDA_FILTER_TEMPLATE
{
40 const KSFILTER_DESCRIPTOR
*pFilterDescriptor
;
42 const BDA_PIN_PAIRING
*pPinPairs
;
43 } BDA_FILTER_TEMPLATE
, *PBDA_FILTER_TEMPLATE
;
45 typedef struct _KSM_PIN_PAIR
{
50 } KSM_PIN_PAIR
, * PKSM_PIN_PAIR
;
52 typedef struct _KSM_PIN
{
54 __GNU_EXTENSION
union {
59 } KSM_PIN
, * PKSM_PIN
;
63 STDMETHODIMP_(NTSTATUS
)
67 STDMETHODIMP_(NTSTATUS
)
71 STDMETHODIMP_(NTSTATUS
)
72 BdaCreateFilterFactory(
73 IN PKSDEVICE pKSDevice
,
74 IN
const KSFILTER_DESCRIPTOR
*pFilterDescriptor
,
75 IN
const BDA_FILTER_TEMPLATE
*pBdaFilterTemplate
);
77 STDMETHODIMP_(NTSTATUS
)
78 BdaCreateFilterFactoryEx(
79 IN PKSDEVICE pKSDevice
,
80 IN
const KSFILTER_DESCRIPTOR
*pFilterDescriptor
,
81 IN
const BDA_FILTER_TEMPLATE
*pBdaFilterTemplate
,
82 OUT PKSFILTERFACTORY
*ppKSFilterFactory
);
84 STDMETHODIMP_(NTSTATUS
)
86 IN PKSFILTER pKSFilter
,
90 STDMETHODIMP_(NTSTATUS
)
92 IN PKSFILTER pKSFilter
,
94 IN ULONG OutputPinId
);
96 STDMETHODIMP_(NTSTATUS
)
98 IN PKSFILTER pKSFilter
,
101 STDMETHODIMP_(NTSTATUS
)
102 BdaFilterFactoryUpdateCacheData(
103 IN PKSFILTERFACTORY pFilterFactory
,
104 IN
const KSFILTER_DESCRIPTOR
*pFilterDescriptor OPTIONAL
);
106 STDMETHODIMP_(NTSTATUS
)
109 OUT BDA_CHANGE_STATE
*pChangeState
);
111 STDMETHODIMP_(NTSTATUS
)
113 IN PKSFILTER pKSFilter
,
114 IN
const BDA_FILTER_TEMPLATE
*pBdaFilterTemplate
);
116 STDMETHODIMP_(NTSTATUS
)
119 IN KSMETHOD
*pKSMethod
,
120 OUT ULONG
*pulPinFactoryID
);
122 STDMETHODIMP_(NTSTATUS
)
123 BdaMethodCreateTopology(
125 IN KSMETHOD
*pKSMethod
,
126 OPTIONAL PVOID pvIgnored
);
128 STDMETHODIMP_(NTSTATUS
)
131 IN KSMETHOD
*pKSMethod
,
132 OPTIONAL PVOID pvIgnored
);
134 STDMETHODIMP_(NTSTATUS
)
135 BdaPropertyGetControllingPinId(
137 IN KSP_BDA_NODE_PIN
*pProperty
,
138 OUT ULONG
*pulControllingPinId
);
140 STDMETHODIMP_(NTSTATUS
)
141 BdaPropertyGetPinControl(
143 IN KSPROPERTY
*pKSProperty
,
144 OUT ULONG
*pulProperty
);
146 STDMETHODIMP_(NTSTATUS
)
147 BdaPropertyNodeDescriptors(
149 IN KSPROPERTY
*pKSProperty
,
150 OUT BDANODE_DESCRIPTOR
*pNodeDescriptorProperty
);
152 STDMETHODIMP_(NTSTATUS
)
153 BdaPropertyNodeEvents(
155 IN KSP_NODE
*pKSProperty
,
156 OUT GUID
*pguidProperty
);
158 STDMETHODIMP_(NTSTATUS
)
159 BdaPropertyNodeMethods(
161 IN KSP_NODE
*pKSProperty
,
162 OUT GUID
*pguidProperty
);
164 STDMETHODIMP_(NTSTATUS
)
165 BdaPropertyNodeProperties(
167 IN KSP_NODE
*pKSProperty
,
168 OUT GUID
*pguidProperty
);
170 STDMETHODIMP_(NTSTATUS
)
171 BdaPropertyNodeTypes(
173 IN KSPROPERTY
*pKSProperty
,
174 OUT ULONG
*pulProperty
);
176 STDMETHODIMP_(NTSTATUS
)
179 IN KSPROPERTY
*pKSProperty
,
180 OUT ULONG
*pulProperty
);
182 STDMETHODIMP_(NTSTATUS
)
183 BdaPropertyTemplateConnections(
185 IN KSPROPERTY
*pKSProperty
,
186 OUT KSTOPOLOGY_CONNECTION
*pConnectionProperty
);
188 STDMETHODIMP_(NTSTATUS
)
192 STDMETHODIMP_(NTSTATUS
)
194 IN PKSFILTER pKSFilter
);
196 STDMETHODIMP_(NTSTATUS
)
197 BdaValidateNodeProperty(
199 IN KSPROPERTY
*pKSProperty
);
201 #if defined(__cplusplus)
205 #endif /* (NTDDI_VERSION >= NTDDI_WINXP) */