123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200 |
- #pragma once
- #if (NTDDI_VERSION >= NTDDI_WINXP)
- #if defined(__cplusplus)
- extern "C" {
- #endif
- #if defined(_ARM_)
- #define STDMETHODCALLTYPE
- #else
- #define STDMETHODCALLTYPE __stdcall
- #endif
- #ifndef _WDMDDK_
- typedef GUID *PGUID;
- #endif
- /* Types */
- typedef ULONG BDA_TOPOLOGY_JOINT, *PBDA_TOPOLOGY_JOINT;
- 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_PAIR {
- KSMETHOD Method;
- ULONG InputPinId;
- ULONG OutputPinId;
- ULONG Reserved;
- } KSM_PIN_PAIR, * PKSM_PIN_PAIR;
- 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
- #endif /* (NTDDI_VERSION >= NTDDI_WINXP) */
|