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
;
30 typedef struct _KSM_PIN
39 } KSM_PIN
, * PKSM_PIN
;
43 STDMETHODIMP_(NTSTATUS
) BdaCheckChanges(IN PIRP Irp
);
44 STDMETHODIMP_(NTSTATUS
) BdaCommitChanges(IN PIRP Irp
);
46 STDMETHODIMP_(NTSTATUS
) BdaCreateFilterFactory(
47 IN PKSDEVICE pKSDevice
,
48 IN
const KSFILTER_DESCRIPTOR
*pFilterDescriptor
,
49 IN
const BDA_FILTER_TEMPLATE
*pBdaFilterTemplate
);
51 STDMETHODIMP_(NTSTATUS
) BdaCreateFilterFactoryEx(
52 IN PKSDEVICE pKSDevice
,
53 IN
const KSFILTER_DESCRIPTOR
*pFilterDescriptor
,
54 IN
const BDA_FILTER_TEMPLATE
*pBdaFilterTemplate
,
55 OUT PKSFILTERFACTORY
*ppKSFilterFactory
);
57 STDMETHODIMP_(NTSTATUS
) BdaCreatePin(
58 IN PKSFILTER pKSFilter
,
62 STDMETHODIMP_(NTSTATUS
) BdaCreateTopology(
63 IN PKSFILTER pKSFilter
,
65 IN ULONG OutputPinId
);
67 STDMETHODIMP_(NTSTATUS
) BdaDeletePin(
68 IN PKSFILTER pKSFilter
,
71 STDMETHODIMP_(NTSTATUS
) BdaFilterFactoryUpdateCacheData(
72 IN PKSFILTERFACTORY pFilterFactory
,
73 IN
const KSFILTER_DESCRIPTOR
*pFilterDescriptor OPTIONAL
);
75 STDMETHODIMP_(NTSTATUS
) BdaGetChangeState(
77 OUT BDA_CHANGE_STATE
*pChangeState
);
79 STDMETHODIMP_(NTSTATUS
) BdaInitFilter(
80 IN PKSFILTER pKSFilter
,
81 IN
const BDA_FILTER_TEMPLATE
*pBdaFilterTemplate
);
83 STDMETHODIMP_(NTSTATUS
) BdaMethodCreatePin(
85 IN KSMETHOD
*pKSMethod
,
86 OUT ULONG
*pulPinFactoryID
);
88 STDMETHODIMP_(NTSTATUS
) BdaMethodCreateTopology(
90 IN KSMETHOD
*pKSMethod
,
91 OPTIONAL PVOID pvIgnored
);
93 STDMETHODIMP_(NTSTATUS
) BdaMethodDeletePin(
95 IN KSMETHOD
*pKSMethod
,
96 OPTIONAL PVOID pvIgnored
);
98 STDMETHODIMP_(NTSTATUS
) BdaPropertyGetControllingPinId(
100 IN KSP_BDA_NODE_PIN
*pProperty
,
101 OUT ULONG
*pulControllingPinId
);
103 STDMETHODIMP_(NTSTATUS
) BdaPropertyGetPinControl(
105 IN KSPROPERTY
*pKSProperty
,
106 OUT ULONG
*pulProperty
);
108 STDMETHODIMP_(NTSTATUS
) BdaPropertyNodeDescriptors(
110 IN KSPROPERTY
*pKSProperty
,
111 OUT BDANODE_DESCRIPTOR
*pNodeDescriptorProperty
);
113 STDMETHODIMP_(NTSTATUS
) BdaPropertyNodeEvents(
115 IN KSP_NODE
*pKSProperty
,
116 OUT GUID
*pguidProperty
);
118 STDMETHODIMP_(NTSTATUS
) BdaPropertyNodeMethods(
120 IN KSP_NODE
*pKSProperty
,
121 OUT GUID
*pguidProperty
);
123 STDMETHODIMP_(NTSTATUS
) BdaPropertyNodeProperties(
125 IN KSP_NODE
*pKSProperty
,
126 OUT GUID
*pguidProperty
);
128 STDMETHODIMP_(NTSTATUS
) BdaPropertyNodeTypes(
130 IN KSPROPERTY
*pKSProperty
,
131 OUT ULONG
*pulProperty
);
133 STDMETHODIMP_(NTSTATUS
) BdaPropertyPinTypes(
135 IN KSPROPERTY
*pKSProperty
,
136 OUT ULONG
*pulProperty
);
138 STDMETHODIMP_(NTSTATUS
) BdaPropertyTemplateConnections(
140 IN KSPROPERTY
*pKSProperty
,
141 OUT KSTOPOLOGY_CONNECTION
*pConnectionProperty
);
143 STDMETHODIMP_(NTSTATUS
) BdaStartChanges(IN PIRP Irp
);
144 STDMETHODIMP_(NTSTATUS
) BdaUninitFilter(IN PKSFILTER pKSFilter
);
146 STDMETHODIMP_(NTSTATUS
) BdaValidateNodeProperty(
148 IN KSPROPERTY
*pKSProperty
);
150 #if defined(__cplusplus)