extern "C" {
#endif
-/* Helper macro to enable gcc's extension. */
+/* Helper macro to enable gcc's extension. */
#ifndef __GNU_EXTENSION
#ifdef __GNUC__
#define __GNU_EXTENSION __extension__
#endif
#define STDMETHODCALLTYPE __stdcall
+
+#ifndef _WDMDDK_
typedef GUID *PGUID;
+#endif
/* Types */
typedef struct _BDA_PIN_PAIRING
{
- ULONG ulInputPin;
- ULONG ulOutputPin;
- ULONG ulcMaxInputsPerOutput;
- ULONG ulcMinInputsPerOutput;
- ULONG ulcMaxOutputsPerInput;
- ULONG ulcMinOutputsPerInput;
- ULONG ulcTopologyJoints;
- const ULONG *pTopologyJoints;
+ 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;
+ const KSFILTER_DESCRIPTOR *pFilterDescriptor;
+ ULONG ulcPinPairs;
+ const BDA_PIN_PAIRING *pPinPairs;
} BDA_FILTER_TEMPLATE, *PBDA_FILTER_TEMPLATE;
typedef struct _KSM_PIN
{
- KSMETHOD Method;
+ KSMETHOD Method;
__GNU_EXTENSION union
{
- ULONG PinId;
- ULONG PinType;
- };
- ULONG Reserved;
+ ULONG PinId;
+ ULONG PinType;
+ };
+ ULONG Reserved;
} KSM_PIN, * PKSM_PIN;
/* Functions */
STDMETHODIMP_(NTSTATUS) BdaCommitChanges(IN PIRP Irp);
STDMETHODIMP_(NTSTATUS) BdaCreateFilterFactory(
- IN PKSDEVICE pKSDevice,
- IN const KSFILTER_DESCRIPTOR *pFilterDescriptor,
- IN const BDA_FILTER_TEMPLATE *pBdaFilterTemplate);
+ 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);
+ 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);
+ IN PKSFILTER pKSFilter,
+ IN ULONG ulPinType,
+ OUT ULONG *pulPinId);
STDMETHODIMP_(NTSTATUS) BdaCreateTopology(
- IN PKSFILTER pKSFilter,
- IN ULONG InputPinId,
- IN ULONG OutputPinId);
+ IN PKSFILTER pKSFilter,
+ IN ULONG InputPinId,
+ IN ULONG OutputPinId);
STDMETHODIMP_(NTSTATUS) BdaDeletePin(
- IN PKSFILTER pKSFilter,
- IN ULONG *pulPinId);
+ IN PKSFILTER pKSFilter,
+ IN ULONG *pulPinId);
STDMETHODIMP_(NTSTATUS) BdaFilterFactoryUpdateCacheData(
- IN PKSFILTERFACTORY pFilterFactory,
- IN const KSFILTER_DESCRIPTOR *pFilterDescriptor OPTIONAL);
+ IN PKSFILTERFACTORY pFilterFactory,
+ IN const KSFILTER_DESCRIPTOR *pFilterDescriptor OPTIONAL);
STDMETHODIMP_(NTSTATUS) BdaGetChangeState(
- IN PIRP Irp,
- OUT BDA_CHANGE_STATE *pChangeState);
+ IN PIRP Irp,
+ OUT BDA_CHANGE_STATE *pChangeState);
STDMETHODIMP_(NTSTATUS) BdaInitFilter(
- IN PKSFILTER pKSFilter,
- IN const BDA_FILTER_TEMPLATE *pBdaFilterTemplate);
+ IN PKSFILTER pKSFilter,
+ IN const BDA_FILTER_TEMPLATE *pBdaFilterTemplate);
STDMETHODIMP_(NTSTATUS) BdaMethodCreatePin(
- IN PIRP Irp,
- IN KSMETHOD *pKSMethod,
- OUT ULONG *pulPinFactoryID);
+ IN PIRP Irp,
+ IN KSMETHOD *pKSMethod,
+ OUT ULONG *pulPinFactoryID);
STDMETHODIMP_(NTSTATUS) BdaMethodCreateTopology(
- IN PIRP Irp,
- IN KSMETHOD *pKSMethod,
- OPTIONAL PVOID pvIgnored);
+ IN PIRP Irp,
+ IN KSMETHOD *pKSMethod,
+ OPTIONAL PVOID pvIgnored);
STDMETHODIMP_(NTSTATUS) BdaMethodDeletePin(
- IN PIRP Irp,
- IN KSMETHOD *pKSMethod,
- OPTIONAL PVOID pvIgnored);
+ IN PIRP Irp,
+ IN KSMETHOD *pKSMethod,
+ OPTIONAL PVOID pvIgnored);
STDMETHODIMP_(NTSTATUS) BdaPropertyGetControllingPinId(
- IN PIRP Irp,
- IN KSP_BDA_NODE_PIN *pProperty,
- OUT ULONG *pulControllingPinId);
+ IN PIRP Irp,
+ IN KSP_BDA_NODE_PIN *pProperty,
+ OUT ULONG *pulControllingPinId);
STDMETHODIMP_(NTSTATUS) BdaPropertyGetPinControl(
- IN PIRP Irp,
- IN KSPROPERTY *pKSProperty,
- OUT ULONG *pulProperty);
+ IN PIRP Irp,
+ IN KSPROPERTY *pKSProperty,
+ OUT ULONG *pulProperty);
STDMETHODIMP_(NTSTATUS) BdaPropertyNodeDescriptors(
- IN PIRP Irp,
- IN KSPROPERTY *pKSProperty,
- OUT BDANODE_DESCRIPTOR *pNodeDescriptorProperty);
+ IN PIRP Irp,
+ IN KSPROPERTY *pKSProperty,
+ OUT BDANODE_DESCRIPTOR *pNodeDescriptorProperty);
STDMETHODIMP_(NTSTATUS) BdaPropertyNodeEvents(
- IN PIRP Irp,
- IN KSP_NODE *pKSProperty,
- OUT GUID *pguidProperty);
+ IN PIRP Irp,
+ IN KSP_NODE *pKSProperty,
+ OUT GUID *pguidProperty);
STDMETHODIMP_(NTSTATUS) BdaPropertyNodeMethods(
- IN PIRP Irp,
- IN KSP_NODE *pKSProperty,
- OUT GUID *pguidProperty);
+ IN PIRP Irp,
+ IN KSP_NODE *pKSProperty,
+ OUT GUID *pguidProperty);
STDMETHODIMP_(NTSTATUS) BdaPropertyNodeProperties(
- IN PIRP Irp,
- IN KSP_NODE *pKSProperty,
- OUT GUID *pguidProperty);
+ IN PIRP Irp,
+ IN KSP_NODE *pKSProperty,
+ OUT GUID *pguidProperty);
STDMETHODIMP_(NTSTATUS) BdaPropertyNodeTypes(
- IN PIRP Irp,
- IN KSPROPERTY *pKSProperty,
- OUT ULONG *pulProperty);
+ IN PIRP Irp,
+ IN KSPROPERTY *pKSProperty,
+ OUT ULONG *pulProperty);
STDMETHODIMP_(NTSTATUS) BdaPropertyPinTypes(
- IN PIRP Irp,
- IN KSPROPERTY *pKSProperty,
- OUT ULONG *pulProperty);
+ IN PIRP Irp,
+ IN KSPROPERTY *pKSProperty,
+ OUT ULONG *pulProperty);
STDMETHODIMP_(NTSTATUS) BdaPropertyTemplateConnections(
- IN PIRP Irp,
- IN KSPROPERTY *pKSProperty,
- OUT KSTOPOLOGY_CONNECTION *pConnectionProperty);
+ 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);
+ IN PIRP Irp,
+ IN KSPROPERTY *pKSProperty);
#if defined(__cplusplus)
}