1 #if defined(__cplusplus)
5 #define STDMETHODCALLTYPE __stdcall
10 typedef struct _BDA_PIN_PAIRING
14 ULONG ulcMaxInputsPerOutput
;
15 ULONG ulcMinInputsPerOutput
;
16 ULONG ulcMaxOutputsPerInput
;
17 ULONG ulcMinOutputsPerInput
;
18 ULONG ulcTopologyJoints
;
19 const ULONG
*pTopologyJoints
;
20 } BDA_PIN_PAIRING
, *PBDA_PIN_PAIRING
;
22 typedef struct _BDA_FILTER_TEMPLATE
24 const KSFILTER_DESCRIPTOR
*pFilterDescriptor
;
26 const BDA_PIN_PAIRING
*pPinPairs
;
27 } BDA_FILTER_TEMPLATE
, *PBDA_FILTER_TEMPLATE
;
31 STDMETHODIMP_(NTSTATUS
) BdaCheckChanges(IN PIRP Irp
);
32 STDMETHODIMP_(NTSTATUS
) BdaCommitChanges(IN PIRP Irp
);
34 STDMETHODIMP_(NTSTATUS
) BdaCreateFilterFactory(
35 IN PKSDEVICE pKSDevice
,
36 IN
const KSFILTER_DESCRIPTOR
*pFilterDescriptor
,
37 IN
const BDA_FILTER_TEMPLATE
*pBdaFilterTemplate
);
39 STDMETHODIMP_(NTSTATUS
) BdaCreateFilterFactoryEx(
40 IN PKSDEVICE pKSDevice
,
41 IN
const KSFILTER_DESCRIPTOR
*pFilterDescriptor
,
42 IN
const BDA_FILTER_TEMPLATE
*pBdaFilterTemplate
,
43 OUT PKSFILTERFACTORY
*ppKSFilterFactory
);
45 STDMETHODIMP_(NTSTATUS
) BdaCreatePin(
46 IN PKSFILTER pKSFilter
,
50 STDMETHODIMP_(NTSTATUS
) BdaCreateTopology(
51 IN PKSFILTER pKSFilter
,
53 IN ULONG OutputPinId
);
55 STDMETHODIMP_(NTSTATUS
) BdaDeletePin(
56 IN PKSFILTER pKSFilter
,
59 STDMETHODIMP_(NTSTATUS
) BdaFilterFactoryUpdateCacheData(
60 IN PKSFILTERFACTORY pFilterFactory
,
61 IN
const KSFILTER_DESCRIPTOR
*pFilterDescriptor OPTIONAL
);
63 STDMETHODIMP_(NTSTATUS
) BdaGetChangeState(
65 OUT BDA_CHANGE_STATE
*pChangeState
);
67 STDMETHODIMP_(NTSTATUS
) BdaInitFilter(
68 IN PKSFILTER pKSFilter
,
69 IN
const BDA_FILTER_TEMPLATE
*pBdaFilterTemplate
);
71 STDMETHODIMP_(NTSTATUS
) BdaMethodCreatePin(
73 IN KSMETHOD
*pKSMethod
,
74 OUT ULONG
*pulPinFactoryID
);
76 STDMETHODIMP_(NTSTATUS
) BdaMethodCreateTopology(
78 IN KSMETHOD
*pKSMethod
,
79 OPTIONAL PVOID pvIgnored
);
81 STDMETHODIMP_(NTSTATUS
) BdaMethodDeletePin(
83 IN KSMETHOD
*pKSMethod
,
84 OPTIONAL PVOID pvIgnored
);
86 STDMETHODIMP_(NTSTATUS
) BdaPropertyGetControllingPinId(
88 IN KSP_BDA_NODE_PIN
*pProperty
,
89 OUT ULONG
*pulControllingPinId
);
91 STDMETHODIMP_(NTSTATUS
) BdaPropertyGetPinControl(
93 IN KSPROPERTY
*pKSProperty
,
94 OUT ULONG
*pulProperty
);
96 STDMETHODIMP_(NTSTATUS
) BdaPropertyNodeDescriptors(
98 IN KSPROPERTY
*pKSProperty
,
99 OUT BDANODE_DESCRIPTOR
*pNodeDescriptorProperty
);
101 STDMETHODIMP_(NTSTATUS
) BdaPropertyNodeEvents(
103 IN KSP_NODE
*pKSProperty
,
104 OUT GUID
*pguidProperty
);
106 STDMETHODIMP_(NTSTATUS
) BdaPropertyNodeMethods(
108 IN KSP_NODE
*pKSProperty
,
109 OUT GUID
*pguidProperty
);
111 STDMETHODIMP_(NTSTATUS
) BdaPropertyNodeProperties(
113 IN KSP_NODE
*pKSProperty
,
114 OUT GUID
*pguidProperty
);
116 STDMETHODIMP_(NTSTATUS
) BdaPropertyNodeTypes(
118 IN KSPROPERTY
*pKSProperty
,
119 OUT ULONG
*pulProperty
);
121 STDMETHODIMP_(NTSTATUS
) BdaPropertyPinTypes(
123 IN KSPROPERTY
*pKSProperty
,
124 OUT ULONG
*pulProperty
);
126 STDMETHODIMP_(NTSTATUS
) BdaPropertyTemplateConnections(
128 IN KSPROPERTY
*pKSProperty
,
129 OUT KSTOPOLOGY_CONNECTION
*pConnectionProperty
);
131 STDMETHODIMP_(NTSTATUS
) BdaStartChanges(IN PIRP Irp
);
132 STDMETHODIMP_(NTSTATUS
) BdaUninitFilter(IN PKSFILTER pKSFilter
);
134 STDMETHODIMP_(NTSTATUS
) BdaValidateNodeProperty(
136 IN KSPROPERTY
*pKSProperty
);
138 #if defined(__cplusplus)