reactos/sdk/include/ddk/bdasup.h

247 lines
5.5 KiB
C

#pragma once
#if (NTDDI_VERSION >= NTDDI_WINXP)
#if defined(__cplusplus)
extern "C" {
#endif
#define STDMETHODCALLTYPE __stdcall
#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 */
_Must_inspect_result_
_IRQL_requires_(PASSIVE_LEVEL)
STDMETHODIMP_(NTSTATUS)
BdaCheckChanges(
_In_ PIRP Irp);
_Must_inspect_result_
_IRQL_requires_(PASSIVE_LEVEL)
STDMETHODIMP_(NTSTATUS)
BdaCommitChanges(
_In_ PIRP Irp);
_Must_inspect_result_
_IRQL_requires_(PASSIVE_LEVEL)
STDMETHODIMP_(NTSTATUS)
BdaCreateFilterFactory(
_In_ PKSDEVICE pKSDevice,
_In_ const KSFILTER_DESCRIPTOR *pFilterDescriptor,
_In_ const BDA_FILTER_TEMPLATE *pBdaFilterTemplate);
_Must_inspect_result_
_IRQL_requires_(PASSIVE_LEVEL)
STDMETHODIMP_(NTSTATUS)
BdaCreateFilterFactoryEx(
_In_ PKSDEVICE pKSDevice,
_In_ const KSFILTER_DESCRIPTOR *pFilterDescriptor,
_In_ const BDA_FILTER_TEMPLATE *pBdaFilterTemplate,
_Out_opt_ PKSFILTERFACTORY *ppKSFilterFactory);
_Must_inspect_result_
_IRQL_requires_(PASSIVE_LEVEL)
STDMETHODIMP_(NTSTATUS)
BdaCreatePin(
_In_ PKSFILTER pKSFilter,
_In_ ULONG ulPinType,
_Out_opt_ ULONG *pulPinId);
_Must_inspect_result_
_IRQL_requires_(PASSIVE_LEVEL)
STDMETHODIMP_(NTSTATUS)
BdaCreateTopology(
_In_ PKSFILTER pKSFilter,
_In_ ULONG InputPinId,
_In_ ULONG OutputPinId);
_Must_inspect_result_
_IRQL_requires_(PASSIVE_LEVEL)
STDMETHODIMP_(NTSTATUS)
BdaDeletePin(
_In_ PKSFILTER pKSFilter,
_Out_opt_ ULONG *pulPinId);
_Must_inspect_result_
_IRQL_requires_(PASSIVE_LEVEL)
STDMETHODIMP_(NTSTATUS)
BdaFilterFactoryUpdateCacheData(
_In_ PKSFILTERFACTORY pFilterFactory,
_In_opt_ const KSFILTER_DESCRIPTOR *pFilterDescriptor);
_Must_inspect_result_
_IRQL_requires_(PASSIVE_LEVEL)
STDMETHODIMP_(NTSTATUS)
BdaGetChangeState(
_In_ PIRP Irp,
_Out_opt_ BDA_CHANGE_STATE *pChangeState);
_Must_inspect_result_
_IRQL_requires_(PASSIVE_LEVEL)
STDMETHODIMP_(NTSTATUS)
BdaInitFilter(
_In_ PKSFILTER pKSFilter,
_In_ const BDA_FILTER_TEMPLATE *pBdaFilterTemplate);
_Must_inspect_result_
_IRQL_requires_(PASSIVE_LEVEL)
STDMETHODIMP_(NTSTATUS)
BdaMethodCreatePin(
_In_ PIRP Irp,
_In_ KSMETHOD *pKSMethod,
_Out_opt_ ULONG *pulPinFactoryID);
_Must_inspect_result_
_IRQL_requires_(PASSIVE_LEVEL)
STDMETHODIMP_(NTSTATUS)
BdaMethodCreateTopology(
_In_ PIRP Irp,
_In_ KSMETHOD *pKSMethod,
PVOID pvIgnored);
_Must_inspect_result_
_IRQL_requires_(PASSIVE_LEVEL)
STDMETHODIMP_(NTSTATUS)
BdaMethodDeletePin(
_In_ PIRP Irp,
_In_ KSMETHOD *pKSMethod,
PVOID pvIgnored);
_Must_inspect_result_
_IRQL_requires_(PASSIVE_LEVEL)
STDMETHODIMP_(NTSTATUS)
BdaPropertyGetControllingPinId(
_In_ PIRP Irp,
_In_ KSP_BDA_NODE_PIN *pProperty,
_Out_opt_ ULONG *pulControllingPinId);
_Must_inspect_result_
_IRQL_requires_(PASSIVE_LEVEL)
STDMETHODIMP_(NTSTATUS)
BdaPropertyGetPinControl(
_In_ PIRP Irp,
_In_ KSPROPERTY *pKSProperty,
_Out_opt_ ULONG *pulProperty);
_Must_inspect_result_
_IRQL_requires_(PASSIVE_LEVEL)
STDMETHODIMP_(NTSTATUS)
BdaPropertyNodeDescriptors(
_In_ PIRP Irp,
_In_ KSPROPERTY *pKSProperty,
_Out_opt_ BDANODE_DESCRIPTOR *pNodeDescriptorProperty);
_Must_inspect_result_
_IRQL_requires_(PASSIVE_LEVEL)
STDMETHODIMP_(NTSTATUS)
BdaPropertyNodeEvents(
_In_ PIRP Irp,
_In_ KSP_NODE *pKSProperty,
_Out_opt_ GUID *pguidProperty);
_Must_inspect_result_
_IRQL_requires_(PASSIVE_LEVEL)
STDMETHODIMP_(NTSTATUS)
BdaPropertyNodeMethods(
_In_ PIRP Irp,
_In_ KSP_NODE *pKSProperty,
_Out_opt_ GUID *pguidProperty);
_Must_inspect_result_
_IRQL_requires_(PASSIVE_LEVEL)
STDMETHODIMP_(NTSTATUS)
BdaPropertyNodeProperties(
_In_ PIRP Irp,
_In_ KSP_NODE *pKSProperty,
_Out_opt_ GUID *pguidProperty);
_Must_inspect_result_
_IRQL_requires_(PASSIVE_LEVEL)
STDMETHODIMP_(NTSTATUS)
BdaPropertyNodeTypes(
_In_ PIRP Irp,
_In_ KSPROPERTY *pKSProperty,
_Out_writes_bytes_(OutputBufferLenFromIrp(Irp)) ULONG *pulProperty);
_Must_inspect_result_
_IRQL_requires_(PASSIVE_LEVEL)
STDMETHODIMP_(NTSTATUS)
BdaPropertyPinTypes(
_In_ PIRP Irp,
_In_ KSPROPERTY *pKSProperty,
_Out_writes_bytes_(OutputBufferLenFromIrp(Irp)) ULONG *pulProperty);
_Must_inspect_result_
_IRQL_requires_(PASSIVE_LEVEL)
STDMETHODIMP_(NTSTATUS)
BdaPropertyTemplateConnections(
_In_ PIRP Irp,
_In_ KSPROPERTY *pKSProperty,
_Out_opt_ KSTOPOLOGY_CONNECTION *pConnectionProperty);
_Must_inspect_result_
_IRQL_requires_(PASSIVE_LEVEL)
STDMETHODIMP_(NTSTATUS)
BdaStartChanges(
_In_ PIRP Irp);
_Must_inspect_result_
_IRQL_requires_(PASSIVE_LEVEL)
STDMETHODIMP_(NTSTATUS)
BdaUninitFilter(
_In_ PKSFILTER pKSFilter);
_Must_inspect_result_
_IRQL_requires_(PASSIVE_LEVEL)
STDMETHODIMP_(NTSTATUS)
BdaValidateNodeProperty(
_In_ PIRP Irp,
_In_ KSPROPERTY *pKSProperty);
#if defined(__cplusplus)
}
#endif
#endif /* (NTDDI_VERSION >= NTDDI_WINXP) */