mirror of
https://github.com/reactos/reactos.git
synced 2024-10-30 11:35:58 +00:00
9d6a449a8f
svn path=/branches/header-work/; revision=45694
162 lines
4 KiB
C
162 lines
4 KiB
C
#if defined(__cplusplus)
|
|
extern "C" {
|
|
#endif
|
|
|
|
/* Helper macro to enable gcc's extension. */
|
|
#ifndef __GNU_EXTENSION
|
|
#ifdef __GNUC__
|
|
#define __GNU_EXTENSION __extension__
|
|
#else
|
|
#define __GNU_EXTENSION
|
|
#endif
|
|
#endif
|
|
|
|
#define STDMETHODCALLTYPE __stdcall
|
|
typedef GUID *PGUID;
|
|
|
|
/* Types */
|
|
|
|
typedef struct _BDA_PIN_PAIRING
|
|
{
|
|
ULONG ulInputPin;
|
|
ULONG ulOutputPin;
|
|
ULONG ulcMaxInputsPerOutput;
|
|
ULONG ulcMinInputsPerOutput;
|
|
ULONG ulcMaxOutputsPerInput;
|
|
ULONG ulcMinOutputsPerInput;
|
|
ULONG ulcTopologyJoints;
|
|
const ULONG *pTopologyJoints;
|
|
} BDA_PIN_PAIRING, *PBDA_PIN_PAIRING;
|
|
|
|
typedef struct _BDA_FILTER_TEMPLATE
|
|
{
|
|
const KSFILTER_DESCRIPTOR *pFilterDescriptor;
|
|
ULONG ulcPinPairs;
|
|
const BDA_PIN_PAIRING *pPinPairs;
|
|
} BDA_FILTER_TEMPLATE, *PBDA_FILTER_TEMPLATE;
|
|
|
|
|
|
typedef struct _KSM_PIN
|
|
{
|
|
KSMETHOD Method;
|
|
__GNU_EXTENSION union
|
|
{
|
|
ULONG PinId;
|
|
ULONG PinType;
|
|
};
|
|
ULONG Reserved;
|
|
} KSM_PIN, * PKSM_PIN;
|
|
|
|
/* Functions */
|
|
|
|
STDMETHODIMP_(NTSTATUS) BdaCheckChanges(IN PIRP Irp);
|
|
STDMETHODIMP_(NTSTATUS) BdaCommitChanges(IN PIRP Irp);
|
|
|
|
STDMETHODIMP_(NTSTATUS) BdaCreateFilterFactory(
|
|
IN PKSDEVICE pKSDevice,
|
|
IN const KSFILTER_DESCRIPTOR *pFilterDescriptor,
|
|
IN const BDA_FILTER_TEMPLATE *pBdaFilterTemplate);
|
|
|
|
STDMETHODIMP_(NTSTATUS) BdaCreateFilterFactoryEx(
|
|
IN PKSDEVICE pKSDevice,
|
|
IN const KSFILTER_DESCRIPTOR *pFilterDescriptor,
|
|
IN const BDA_FILTER_TEMPLATE *pBdaFilterTemplate,
|
|
OUT PKSFILTERFACTORY *ppKSFilterFactory);
|
|
|
|
STDMETHODIMP_(NTSTATUS) BdaCreatePin(
|
|
IN PKSFILTER pKSFilter,
|
|
IN ULONG ulPinType,
|
|
OUT ULONG *pulPinId);
|
|
|
|
STDMETHODIMP_(NTSTATUS) BdaCreateTopology(
|
|
IN PKSFILTER pKSFilter,
|
|
IN ULONG InputPinId,
|
|
IN ULONG OutputPinId);
|
|
|
|
STDMETHODIMP_(NTSTATUS) BdaDeletePin(
|
|
IN PKSFILTER pKSFilter,
|
|
IN ULONG *pulPinId);
|
|
|
|
STDMETHODIMP_(NTSTATUS) BdaFilterFactoryUpdateCacheData(
|
|
IN PKSFILTERFACTORY pFilterFactory,
|
|
IN const KSFILTER_DESCRIPTOR *pFilterDescriptor OPTIONAL);
|
|
|
|
STDMETHODIMP_(NTSTATUS) BdaGetChangeState(
|
|
IN PIRP Irp,
|
|
OUT BDA_CHANGE_STATE *pChangeState);
|
|
|
|
STDMETHODIMP_(NTSTATUS) BdaInitFilter(
|
|
IN PKSFILTER pKSFilter,
|
|
IN const BDA_FILTER_TEMPLATE *pBdaFilterTemplate);
|
|
|
|
STDMETHODIMP_(NTSTATUS) BdaMethodCreatePin(
|
|
IN PIRP Irp,
|
|
IN KSMETHOD *pKSMethod,
|
|
OUT ULONG *pulPinFactoryID);
|
|
|
|
STDMETHODIMP_(NTSTATUS) BdaMethodCreateTopology(
|
|
IN PIRP Irp,
|
|
IN KSMETHOD *pKSMethod,
|
|
OPTIONAL PVOID pvIgnored);
|
|
|
|
STDMETHODIMP_(NTSTATUS) BdaMethodDeletePin(
|
|
IN PIRP Irp,
|
|
IN KSMETHOD *pKSMethod,
|
|
OPTIONAL PVOID pvIgnored);
|
|
|
|
STDMETHODIMP_(NTSTATUS) BdaPropertyGetControllingPinId(
|
|
IN PIRP Irp,
|
|
IN KSP_BDA_NODE_PIN *pProperty,
|
|
OUT ULONG *pulControllingPinId);
|
|
|
|
STDMETHODIMP_(NTSTATUS) BdaPropertyGetPinControl(
|
|
IN PIRP Irp,
|
|
IN KSPROPERTY *pKSProperty,
|
|
OUT ULONG *pulProperty);
|
|
|
|
STDMETHODIMP_(NTSTATUS) BdaPropertyNodeDescriptors(
|
|
IN PIRP Irp,
|
|
IN KSPROPERTY *pKSProperty,
|
|
OUT BDANODE_DESCRIPTOR *pNodeDescriptorProperty);
|
|
|
|
STDMETHODIMP_(NTSTATUS) BdaPropertyNodeEvents(
|
|
IN PIRP Irp,
|
|
IN KSP_NODE *pKSProperty,
|
|
OUT GUID *pguidProperty);
|
|
|
|
STDMETHODIMP_(NTSTATUS) BdaPropertyNodeMethods(
|
|
IN PIRP Irp,
|
|
IN KSP_NODE *pKSProperty,
|
|
OUT GUID *pguidProperty);
|
|
|
|
STDMETHODIMP_(NTSTATUS) BdaPropertyNodeProperties(
|
|
IN PIRP Irp,
|
|
IN KSP_NODE *pKSProperty,
|
|
OUT GUID *pguidProperty);
|
|
|
|
STDMETHODIMP_(NTSTATUS) BdaPropertyNodeTypes(
|
|
IN PIRP Irp,
|
|
IN KSPROPERTY *pKSProperty,
|
|
OUT ULONG *pulProperty);
|
|
|
|
STDMETHODIMP_(NTSTATUS) BdaPropertyPinTypes(
|
|
IN PIRP Irp,
|
|
IN KSPROPERTY *pKSProperty,
|
|
OUT ULONG *pulProperty);
|
|
|
|
STDMETHODIMP_(NTSTATUS) BdaPropertyTemplateConnections(
|
|
IN PIRP Irp,
|
|
IN KSPROPERTY *pKSProperty,
|
|
OUT KSTOPOLOGY_CONNECTION *pConnectionProperty);
|
|
|
|
STDMETHODIMP_(NTSTATUS) BdaStartChanges(IN PIRP Irp);
|
|
STDMETHODIMP_(NTSTATUS) BdaUninitFilter(IN PKSFILTER pKSFilter);
|
|
|
|
STDMETHODIMP_(NTSTATUS) BdaValidateNodeProperty(
|
|
IN PIRP Irp,
|
|
IN KSPROPERTY *pKSProperty);
|
|
|
|
#if defined(__cplusplus)
|
|
}
|
|
#endif
|