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
;
54 STDMETHODIMP_(NTSTATUS
)
58 STDMETHODIMP_(NTSTATUS
)
62 STDMETHODIMP_(NTSTATUS
)
63 BdaCreateFilterFactory(
64 IN PKSDEVICE pKSDevice
,
65 IN
const KSFILTER_DESCRIPTOR
*pFilterDescriptor
,
66 IN
const BDA_FILTER_TEMPLATE
*pBdaFilterTemplate
);
68 STDMETHODIMP_(NTSTATUS
)
69 BdaCreateFilterFactoryEx(
70 IN PKSDEVICE pKSDevice
,
71 IN
const KSFILTER_DESCRIPTOR
*pFilterDescriptor
,
72 IN
const BDA_FILTER_TEMPLATE
*pBdaFilterTemplate
,
73 OUT PKSFILTERFACTORY
*ppKSFilterFactory
);
75 STDMETHODIMP_(NTSTATUS
)
77 IN PKSFILTER pKSFilter
,
81 STDMETHODIMP_(NTSTATUS
)
83 IN PKSFILTER pKSFilter
,
85 IN ULONG OutputPinId
);
87 STDMETHODIMP_(NTSTATUS
)
89 IN PKSFILTER pKSFilter
,
92 STDMETHODIMP_(NTSTATUS
)
93 BdaFilterFactoryUpdateCacheData(
94 IN PKSFILTERFACTORY pFilterFactory
,
95 IN
const KSFILTER_DESCRIPTOR
*pFilterDescriptor OPTIONAL
);
97 STDMETHODIMP_(NTSTATUS
)
100 OUT BDA_CHANGE_STATE
*pChangeState
);
102 STDMETHODIMP_(NTSTATUS
)
104 IN PKSFILTER pKSFilter
,
105 IN
const BDA_FILTER_TEMPLATE
*pBdaFilterTemplate
);
107 STDMETHODIMP_(NTSTATUS
)
110 IN KSMETHOD
*pKSMethod
,
111 OUT ULONG
*pulPinFactoryID
);
113 STDMETHODIMP_(NTSTATUS
)
114 BdaMethodCreateTopology(
116 IN KSMETHOD
*pKSMethod
,
117 OPTIONAL PVOID pvIgnored
);
119 STDMETHODIMP_(NTSTATUS
)
122 IN KSMETHOD
*pKSMethod
,
123 OPTIONAL PVOID pvIgnored
);
125 STDMETHODIMP_(NTSTATUS
)
126 BdaPropertyGetControllingPinId(
128 IN KSP_BDA_NODE_PIN
*pProperty
,
129 OUT ULONG
*pulControllingPinId
);
131 STDMETHODIMP_(NTSTATUS
)
132 BdaPropertyGetPinControl(
134 IN KSPROPERTY
*pKSProperty
,
135 OUT ULONG
*pulProperty
);
137 STDMETHODIMP_(NTSTATUS
)
138 BdaPropertyNodeDescriptors(
140 IN KSPROPERTY
*pKSProperty
,
141 OUT BDANODE_DESCRIPTOR
*pNodeDescriptorProperty
);
143 STDMETHODIMP_(NTSTATUS
)
144 BdaPropertyNodeEvents(
146 IN KSP_NODE
*pKSProperty
,
147 OUT GUID
*pguidProperty
);
149 STDMETHODIMP_(NTSTATUS
)
150 BdaPropertyNodeMethods(
152 IN KSP_NODE
*pKSProperty
,
153 OUT GUID
*pguidProperty
);
155 STDMETHODIMP_(NTSTATUS
)
156 BdaPropertyNodeProperties(
158 IN KSP_NODE
*pKSProperty
,
159 OUT GUID
*pguidProperty
);
161 STDMETHODIMP_(NTSTATUS
)
162 BdaPropertyNodeTypes(
164 IN KSPROPERTY
*pKSProperty
,
165 OUT ULONG
*pulProperty
);
167 STDMETHODIMP_(NTSTATUS
)
170 IN KSPROPERTY
*pKSProperty
,
171 OUT ULONG
*pulProperty
);
173 STDMETHODIMP_(NTSTATUS
)
174 BdaPropertyTemplateConnections(
176 IN KSPROPERTY
*pKSProperty
,
177 OUT KSTOPOLOGY_CONNECTION
*pConnectionProperty
);
179 STDMETHODIMP_(NTSTATUS
)
183 STDMETHODIMP_(NTSTATUS
)
185 IN PKSFILTER pKSFilter
);
187 STDMETHODIMP_(NTSTATUS
)
188 BdaValidateNodeProperty(
190 IN KSPROPERTY
*pKSProperty
);
192 #if defined(__cplusplus)
196 #endif /* (NTDDI_VERSION >= NTDDI_WINXP) */