2010-03-29 05:17:15 +00:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
#if (NTDDI_VERSION >= NTDDI_WINXP)
|
|
|
|
|
2009-08-07 12:04:50 +00:00
|
|
|
#if defined(__cplusplus)
|
|
|
|
extern "C" {
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#define STDMETHODCALLTYPE __stdcall
|
2010-03-29 05:03:20 +00:00
|
|
|
|
|
|
|
#ifndef _WDMDDK_
|
2009-08-07 12:04:50 +00:00
|
|
|
typedef GUID *PGUID;
|
2010-03-29 05:03:20 +00:00
|
|
|
#endif
|
2009-08-07 12:04:50 +00:00
|
|
|
|
|
|
|
/* Types */
|
|
|
|
|
2010-03-29 05:17:15 +00:00
|
|
|
typedef ULONG BDA_TOPOLOGY_JOINT, *PBDA_TOPOLOGY_JOINT;
|
|
|
|
|
|
|
|
typedef struct _BDA_PIN_PAIRING {
|
2010-03-29 05:03:20 +00:00
|
|
|
ULONG ulInputPin;
|
|
|
|
ULONG ulOutputPin;
|
|
|
|
ULONG ulcMaxInputsPerOutput;
|
|
|
|
ULONG ulcMinInputsPerOutput;
|
|
|
|
ULONG ulcMaxOutputsPerInput;
|
|
|
|
ULONG ulcMinOutputsPerInput;
|
|
|
|
ULONG ulcTopologyJoints;
|
|
|
|
const ULONG *pTopologyJoints;
|
2009-08-07 12:04:50 +00:00
|
|
|
} BDA_PIN_PAIRING, *PBDA_PIN_PAIRING;
|
|
|
|
|
2010-03-29 05:17:15 +00:00
|
|
|
typedef struct _BDA_FILTER_TEMPLATE {
|
2010-03-29 05:03:20 +00:00
|
|
|
const KSFILTER_DESCRIPTOR *pFilterDescriptor;
|
|
|
|
ULONG ulcPinPairs;
|
|
|
|
const BDA_PIN_PAIRING *pPinPairs;
|
2009-08-07 12:04:50 +00:00
|
|
|
} BDA_FILTER_TEMPLATE, *PBDA_FILTER_TEMPLATE;
|
|
|
|
|
2010-03-29 05:17:15 +00:00
|
|
|
typedef struct _KSM_PIN_PAIR {
|
|
|
|
KSMETHOD Method;
|
|
|
|
ULONG InputPinId;
|
|
|
|
ULONG OutputPinId;
|
|
|
|
ULONG Reserved;
|
|
|
|
} KSM_PIN_PAIR, * PKSM_PIN_PAIR;
|
2010-03-29 04:14:34 +00:00
|
|
|
|
2010-03-29 05:17:15 +00:00
|
|
|
typedef struct _KSM_PIN {
|
2010-03-29 05:03:20 +00:00
|
|
|
KSMETHOD Method;
|
2010-03-29 05:17:15 +00:00
|
|
|
__GNU_EXTENSION union {
|
2010-03-29 05:03:20 +00:00
|
|
|
ULONG PinId;
|
|
|
|
ULONG PinType;
|
|
|
|
};
|
|
|
|
ULONG Reserved;
|
2010-02-18 15:04:54 +00:00
|
|
|
} KSM_PIN, * PKSM_PIN;
|
|
|
|
|
2009-08-07 12:04:50 +00:00
|
|
|
/* Functions */
|
|
|
|
|
2010-03-29 05:17:15 +00:00
|
|
|
STDMETHODIMP_(NTSTATUS)
|
|
|
|
BdaCheckChanges(
|
|
|
|
IN PIRP Irp);
|
|
|
|
|
|
|
|
STDMETHODIMP_(NTSTATUS)
|
|
|
|
BdaCommitChanges(
|
|
|
|
IN PIRP Irp);
|
2010-03-29 04:14:34 +00:00
|
|
|
|
2010-03-29 05:17:15 +00:00
|
|
|
STDMETHODIMP_(NTSTATUS)
|
|
|
|
BdaCreateFilterFactory(
|
2010-03-29 05:03:20 +00:00
|
|
|
IN PKSDEVICE pKSDevice,
|
|
|
|
IN const KSFILTER_DESCRIPTOR *pFilterDescriptor,
|
|
|
|
IN const BDA_FILTER_TEMPLATE *pBdaFilterTemplate);
|
2010-03-29 04:14:34 +00:00
|
|
|
|
2010-03-29 05:17:15 +00:00
|
|
|
STDMETHODIMP_(NTSTATUS)
|
|
|
|
BdaCreateFilterFactoryEx(
|
2010-03-29 05:03:20 +00:00
|
|
|
IN PKSDEVICE pKSDevice,
|
|
|
|
IN const KSFILTER_DESCRIPTOR *pFilterDescriptor,
|
|
|
|
IN const BDA_FILTER_TEMPLATE *pBdaFilterTemplate,
|
|
|
|
OUT PKSFILTERFACTORY *ppKSFilterFactory);
|
2010-03-29 04:14:34 +00:00
|
|
|
|
2010-03-29 05:17:15 +00:00
|
|
|
STDMETHODIMP_(NTSTATUS)
|
|
|
|
BdaCreatePin(
|
2010-03-29 05:03:20 +00:00
|
|
|
IN PKSFILTER pKSFilter,
|
|
|
|
IN ULONG ulPinType,
|
|
|
|
OUT ULONG *pulPinId);
|
2010-03-29 04:14:34 +00:00
|
|
|
|
2010-03-29 05:17:15 +00:00
|
|
|
STDMETHODIMP_(NTSTATUS)
|
|
|
|
BdaCreateTopology(
|
2010-03-29 05:03:20 +00:00
|
|
|
IN PKSFILTER pKSFilter,
|
|
|
|
IN ULONG InputPinId,
|
|
|
|
IN ULONG OutputPinId);
|
2010-03-29 04:14:34 +00:00
|
|
|
|
2010-03-29 05:17:15 +00:00
|
|
|
STDMETHODIMP_(NTSTATUS)
|
|
|
|
BdaDeletePin(
|
2010-03-29 05:03:20 +00:00
|
|
|
IN PKSFILTER pKSFilter,
|
|
|
|
IN ULONG *pulPinId);
|
2010-03-29 04:14:34 +00:00
|
|
|
|
2010-03-29 05:17:15 +00:00
|
|
|
STDMETHODIMP_(NTSTATUS)
|
|
|
|
BdaFilterFactoryUpdateCacheData(
|
2010-03-29 05:03:20 +00:00
|
|
|
IN PKSFILTERFACTORY pFilterFactory,
|
|
|
|
IN const KSFILTER_DESCRIPTOR *pFilterDescriptor OPTIONAL);
|
2010-03-29 04:14:34 +00:00
|
|
|
|
2010-03-29 05:17:15 +00:00
|
|
|
STDMETHODIMP_(NTSTATUS)
|
|
|
|
BdaGetChangeState(
|
2010-03-29 05:03:20 +00:00
|
|
|
IN PIRP Irp,
|
|
|
|
OUT BDA_CHANGE_STATE *pChangeState);
|
2010-03-29 04:14:34 +00:00
|
|
|
|
2010-03-29 05:17:15 +00:00
|
|
|
STDMETHODIMP_(NTSTATUS)
|
|
|
|
BdaInitFilter(
|
2010-03-29 05:03:20 +00:00
|
|
|
IN PKSFILTER pKSFilter,
|
|
|
|
IN const BDA_FILTER_TEMPLATE *pBdaFilterTemplate);
|
2010-03-29 04:14:34 +00:00
|
|
|
|
2010-03-29 05:17:15 +00:00
|
|
|
STDMETHODIMP_(NTSTATUS)
|
|
|
|
BdaMethodCreatePin(
|
2010-03-29 05:03:20 +00:00
|
|
|
IN PIRP Irp,
|
|
|
|
IN KSMETHOD *pKSMethod,
|
|
|
|
OUT ULONG *pulPinFactoryID);
|
2010-03-29 04:14:34 +00:00
|
|
|
|
2010-03-29 05:17:15 +00:00
|
|
|
STDMETHODIMP_(NTSTATUS)
|
|
|
|
BdaMethodCreateTopology(
|
2010-03-29 05:03:20 +00:00
|
|
|
IN PIRP Irp,
|
|
|
|
IN KSMETHOD *pKSMethod,
|
|
|
|
OPTIONAL PVOID pvIgnored);
|
2010-03-29 04:14:34 +00:00
|
|
|
|
2010-03-29 05:17:15 +00:00
|
|
|
STDMETHODIMP_(NTSTATUS)
|
|
|
|
BdaMethodDeletePin(
|
2010-03-29 05:03:20 +00:00
|
|
|
IN PIRP Irp,
|
|
|
|
IN KSMETHOD *pKSMethod,
|
|
|
|
OPTIONAL PVOID pvIgnored);
|
2010-03-29 04:14:34 +00:00
|
|
|
|
2010-03-29 05:17:15 +00:00
|
|
|
STDMETHODIMP_(NTSTATUS)
|
|
|
|
BdaPropertyGetControllingPinId(
|
2010-03-29 05:03:20 +00:00
|
|
|
IN PIRP Irp,
|
|
|
|
IN KSP_BDA_NODE_PIN *pProperty,
|
|
|
|
OUT ULONG *pulControllingPinId);
|
2010-03-29 04:14:34 +00:00
|
|
|
|
2010-03-29 05:17:15 +00:00
|
|
|
STDMETHODIMP_(NTSTATUS)
|
|
|
|
BdaPropertyGetPinControl(
|
2010-03-29 05:03:20 +00:00
|
|
|
IN PIRP Irp,
|
|
|
|
IN KSPROPERTY *pKSProperty,
|
|
|
|
OUT ULONG *pulProperty);
|
2010-03-29 04:14:34 +00:00
|
|
|
|
2010-03-29 05:17:15 +00:00
|
|
|
STDMETHODIMP_(NTSTATUS)
|
|
|
|
BdaPropertyNodeDescriptors(
|
2010-03-29 05:03:20 +00:00
|
|
|
IN PIRP Irp,
|
|
|
|
IN KSPROPERTY *pKSProperty,
|
|
|
|
OUT BDANODE_DESCRIPTOR *pNodeDescriptorProperty);
|
2010-03-29 04:14:34 +00:00
|
|
|
|
2010-03-29 05:17:15 +00:00
|
|
|
STDMETHODIMP_(NTSTATUS)
|
|
|
|
BdaPropertyNodeEvents(
|
2010-03-29 05:03:20 +00:00
|
|
|
IN PIRP Irp,
|
|
|
|
IN KSP_NODE *pKSProperty,
|
|
|
|
OUT GUID *pguidProperty);
|
2010-03-29 04:14:34 +00:00
|
|
|
|
2010-03-29 05:17:15 +00:00
|
|
|
STDMETHODIMP_(NTSTATUS)
|
|
|
|
BdaPropertyNodeMethods(
|
2010-03-29 05:03:20 +00:00
|
|
|
IN PIRP Irp,
|
|
|
|
IN KSP_NODE *pKSProperty,
|
|
|
|
OUT GUID *pguidProperty);
|
2010-03-29 04:14:34 +00:00
|
|
|
|
2010-03-29 05:17:15 +00:00
|
|
|
STDMETHODIMP_(NTSTATUS)
|
|
|
|
BdaPropertyNodeProperties(
|
2010-03-29 05:03:20 +00:00
|
|
|
IN PIRP Irp,
|
|
|
|
IN KSP_NODE *pKSProperty,
|
|
|
|
OUT GUID *pguidProperty);
|
2010-03-29 04:14:34 +00:00
|
|
|
|
2010-03-29 05:17:15 +00:00
|
|
|
STDMETHODIMP_(NTSTATUS)
|
|
|
|
BdaPropertyNodeTypes(
|
2010-03-29 05:03:20 +00:00
|
|
|
IN PIRP Irp,
|
|
|
|
IN KSPROPERTY *pKSProperty,
|
|
|
|
OUT ULONG *pulProperty);
|
2010-03-29 04:14:34 +00:00
|
|
|
|
2010-03-29 05:17:15 +00:00
|
|
|
STDMETHODIMP_(NTSTATUS)
|
|
|
|
BdaPropertyPinTypes(
|
2010-03-29 05:03:20 +00:00
|
|
|
IN PIRP Irp,
|
|
|
|
IN KSPROPERTY *pKSProperty,
|
|
|
|
OUT ULONG *pulProperty);
|
2010-03-29 04:14:34 +00:00
|
|
|
|
2010-03-29 05:17:15 +00:00
|
|
|
STDMETHODIMP_(NTSTATUS)
|
|
|
|
BdaPropertyTemplateConnections(
|
2010-03-29 05:03:20 +00:00
|
|
|
IN PIRP Irp,
|
|
|
|
IN KSPROPERTY *pKSProperty,
|
|
|
|
OUT KSTOPOLOGY_CONNECTION *pConnectionProperty);
|
2010-03-29 04:14:34 +00:00
|
|
|
|
2010-03-29 05:17:15 +00:00
|
|
|
STDMETHODIMP_(NTSTATUS)
|
|
|
|
BdaStartChanges(
|
|
|
|
IN PIRP Irp);
|
2010-03-29 04:14:34 +00:00
|
|
|
|
2010-03-29 05:17:15 +00:00
|
|
|
STDMETHODIMP_(NTSTATUS)
|
|
|
|
BdaUninitFilter(
|
|
|
|
IN PKSFILTER pKSFilter);
|
|
|
|
|
|
|
|
STDMETHODIMP_(NTSTATUS)
|
|
|
|
BdaValidateNodeProperty(
|
2010-03-29 05:03:20 +00:00
|
|
|
IN PIRP Irp,
|
|
|
|
IN KSPROPERTY *pKSProperty);
|
2009-08-07 12:04:50 +00:00
|
|
|
|
|
|
|
#if defined(__cplusplus)
|
|
|
|
}
|
2009-08-07 13:23:35 +00:00
|
|
|
#endif
|
2010-03-29 05:17:15 +00:00
|
|
|
|
|
|
|
#endif /* (NTDDI_VERSION >= NTDDI_WINXP) */
|