Go to the documentation of this file.00001 #pragma once
00002
00003 #if (NTDDI_VERSION >= NTDDI_WINXP)
00004
00005 #if defined(__cplusplus)
00006 extern "C" {
00007 #endif
00008
00009 #define STDMETHODCALLTYPE __stdcall
00010
00011 #ifndef _WDMDDK_
00012 typedef GUID *PGUID;
00013 #endif
00014
00015
00016
00017 typedef ULONG BDA_TOPOLOGY_JOINT, *PBDA_TOPOLOGY_JOINT;
00018
00019 typedef struct _BDA_PIN_PAIRING {
00020 ULONG ulInputPin;
00021 ULONG ulOutputPin;
00022 ULONG ulcMaxInputsPerOutput;
00023 ULONG ulcMinInputsPerOutput;
00024 ULONG ulcMaxOutputsPerInput;
00025 ULONG ulcMinOutputsPerInput;
00026 ULONG ulcTopologyJoints;
00027 const ULONG *pTopologyJoints;
00028 } BDA_PIN_PAIRING, *PBDA_PIN_PAIRING;
00029
00030 typedef struct _BDA_FILTER_TEMPLATE {
00031 const KSFILTER_DESCRIPTOR *pFilterDescriptor;
00032 ULONG ulcPinPairs;
00033 const BDA_PIN_PAIRING *pPinPairs;
00034 } BDA_FILTER_TEMPLATE, *PBDA_FILTER_TEMPLATE;
00035
00036 typedef struct _KSM_PIN_PAIR {
00037 KSMETHOD Method;
00038 ULONG InputPinId;
00039 ULONG OutputPinId;
00040 ULONG Reserved;
00041 } KSM_PIN_PAIR, * PKSM_PIN_PAIR;
00042
00043 typedef struct _KSM_PIN {
00044 KSMETHOD Method;
00045 __GNU_EXTENSION union {
00046 ULONG PinId;
00047 ULONG PinType;
00048 };
00049 ULONG Reserved;
00050 } KSM_PIN, * PKSM_PIN;
00051
00052
00053
00054 _Must_inspect_result_
00055 _IRQL_requires_(PASSIVE_LEVEL)
00056 STDMETHODIMP_(NTSTATUS)
00057 BdaCheckChanges(
00058 _In_ PIRP Irp);
00059
00060 _Must_inspect_result_
00061 _IRQL_requires_(PASSIVE_LEVEL)
00062 STDMETHODIMP_(NTSTATUS)
00063 BdaCommitChanges(
00064 _In_ PIRP Irp);
00065
00066 _Must_inspect_result_
00067 _IRQL_requires_(PASSIVE_LEVEL)
00068 STDMETHODIMP_(NTSTATUS)
00069 BdaCreateFilterFactory(
00070 _In_ PKSDEVICE pKSDevice,
00071 _In_ const KSFILTER_DESCRIPTOR *pFilterDescriptor,
00072 _In_ const BDA_FILTER_TEMPLATE *pBdaFilterTemplate);
00073
00074 _Must_inspect_result_
00075 _IRQL_requires_(PASSIVE_LEVEL)
00076 STDMETHODIMP_(NTSTATUS)
00077 BdaCreateFilterFactoryEx(
00078 _In_ PKSDEVICE pKSDevice,
00079 _In_ const KSFILTER_DESCRIPTOR *pFilterDescriptor,
00080 _In_ const BDA_FILTER_TEMPLATE *pBdaFilterTemplate,
00081 _Out_opt_ PKSFILTERFACTORY *ppKSFilterFactory);
00082
00083 _Must_inspect_result_
00084 _IRQL_requires_(PASSIVE_LEVEL)
00085 STDMETHODIMP_(NTSTATUS)
00086 BdaCreatePin(
00087 _In_ PKSFILTER pKSFilter,
00088 _In_ ULONG ulPinType,
00089 _Out_opt_ ULONG *pulPinId);
00090
00091 _Must_inspect_result_
00092 _IRQL_requires_(PASSIVE_LEVEL)
00093 STDMETHODIMP_(NTSTATUS)
00094 BdaCreateTopology(
00095 _In_ PKSFILTER pKSFilter,
00096 _In_ ULONG InputPinId,
00097 _In_ ULONG OutputPinId);
00098
00099 _Must_inspect_result_
00100 _IRQL_requires_(PASSIVE_LEVEL)
00101 STDMETHODIMP_(NTSTATUS)
00102 BdaDeletePin(
00103 _In_ PKSFILTER pKSFilter,
00104 _Out_opt_ ULONG *pulPinId);
00105
00106 _Must_inspect_result_
00107 _IRQL_requires_(PASSIVE_LEVEL)
00108 STDMETHODIMP_(NTSTATUS)
00109 BdaFilterFactoryUpdateCacheData(
00110 _In_ PKSFILTERFACTORY pFilterFactory,
00111 _In_opt_ const KSFILTER_DESCRIPTOR *pFilterDescriptor);
00112
00113 _Must_inspect_result_
00114 _IRQL_requires_(PASSIVE_LEVEL)
00115 STDMETHODIMP_(NTSTATUS)
00116 BdaGetChangeState(
00117 _In_ PIRP Irp,
00118 _Out_opt_ BDA_CHANGE_STATE *pChangeState);
00119
00120 _Must_inspect_result_
00121 _IRQL_requires_(PASSIVE_LEVEL)
00122 STDMETHODIMP_(NTSTATUS)
00123 BdaInitFilter(
00124 _In_ PKSFILTER pKSFilter,
00125 _In_ const BDA_FILTER_TEMPLATE *pBdaFilterTemplate);
00126
00127 _Must_inspect_result_
00128 _IRQL_requires_(PASSIVE_LEVEL)
00129 STDMETHODIMP_(NTSTATUS)
00130 BdaMethodCreatePin(
00131 _In_ PIRP Irp,
00132 _In_ KSMETHOD *pKSMethod,
00133 _Out_opt_ ULONG *pulPinFactoryID);
00134
00135 _Must_inspect_result_
00136 _IRQL_requires_(PASSIVE_LEVEL)
00137 STDMETHODIMP_(NTSTATUS)
00138 BdaMethodCreateTopology(
00139 _In_ PIRP Irp,
00140 _In_ KSMETHOD *pKSMethod,
00141 PVOID pvIgnored);
00142
00143 _Must_inspect_result_
00144 _IRQL_requires_(PASSIVE_LEVEL)
00145 STDMETHODIMP_(NTSTATUS)
00146 BdaMethodDeletePin(
00147 _In_ PIRP Irp,
00148 _In_ KSMETHOD *pKSMethod,
00149 PVOID pvIgnored);
00150
00151 _Must_inspect_result_
00152 _IRQL_requires_(PASSIVE_LEVEL)
00153 STDMETHODIMP_(NTSTATUS)
00154 BdaPropertyGetControllingPinId(
00155 _In_ PIRP Irp,
00156 _In_ KSP_BDA_NODE_PIN *pProperty,
00157 _Out_opt_ ULONG *pulControllingPinId);
00158
00159 _Must_inspect_result_
00160 _IRQL_requires_(PASSIVE_LEVEL)
00161 STDMETHODIMP_(NTSTATUS)
00162 BdaPropertyGetPinControl(
00163 _In_ PIRP Irp,
00164 _In_ KSPROPERTY *pKSProperty,
00165 _Out_opt_ ULONG *pulProperty);
00166
00167 _Must_inspect_result_
00168 _IRQL_requires_(PASSIVE_LEVEL)
00169 STDMETHODIMP_(NTSTATUS)
00170 BdaPropertyNodeDescriptors(
00171 _In_ PIRP Irp,
00172 _In_ KSPROPERTY *pKSProperty,
00173 _Out_opt_ BDANODE_DESCRIPTOR *pNodeDescriptorProperty);
00174
00175 _Must_inspect_result_
00176 _IRQL_requires_(PASSIVE_LEVEL)
00177 STDMETHODIMP_(NTSTATUS)
00178 BdaPropertyNodeEvents(
00179 _In_ PIRP Irp,
00180 _In_ KSP_NODE *pKSProperty,
00181 _Out_opt_ GUID *pguidProperty);
00182
00183 _Must_inspect_result_
00184 _IRQL_requires_(PASSIVE_LEVEL)
00185 STDMETHODIMP_(NTSTATUS)
00186 BdaPropertyNodeMethods(
00187 _In_ PIRP Irp,
00188 _In_ KSP_NODE *pKSProperty,
00189 _Out_opt_ GUID *pguidProperty);
00190
00191 _Must_inspect_result_
00192 _IRQL_requires_(PASSIVE_LEVEL)
00193 STDMETHODIMP_(NTSTATUS)
00194 BdaPropertyNodeProperties(
00195 _In_ PIRP Irp,
00196 _In_ KSP_NODE *pKSProperty,
00197 _Out_opt_ GUID *pguidProperty);
00198
00199 _Must_inspect_result_
00200 _IRQL_requires_(PASSIVE_LEVEL)
00201 STDMETHODIMP_(NTSTATUS)
00202 BdaPropertyNodeTypes(
00203 _In_ PIRP Irp,
00204 _In_ KSPROPERTY *pKSProperty,
00205 _Out_writes_bytes_(OutputBufferLenFromIrp(Irp)) ULONG *pulProperty);
00206
00207 _Must_inspect_result_
00208 _IRQL_requires_(PASSIVE_LEVEL)
00209 STDMETHODIMP_(NTSTATUS)
00210 BdaPropertyPinTypes(
00211 _In_ PIRP Irp,
00212 _In_ KSPROPERTY *pKSProperty,
00213 _Out_writes_bytes_(OutputBufferLenFromIrp(Irp)) ULONG *pulProperty);
00214
00215 _Must_inspect_result_
00216 _IRQL_requires_(PASSIVE_LEVEL)
00217 STDMETHODIMP_(NTSTATUS)
00218 BdaPropertyTemplateConnections(
00219 _In_ PIRP Irp,
00220 _In_ KSPROPERTY *pKSProperty,
00221 _Out_opt_ KSTOPOLOGY_CONNECTION *pConnectionProperty);
00222
00223 _Must_inspect_result_
00224 _IRQL_requires_(PASSIVE_LEVEL)
00225 STDMETHODIMP_(NTSTATUS)
00226 BdaStartChanges(
00227 _In_ PIRP Irp);
00228
00229 _Must_inspect_result_
00230 _IRQL_requires_(PASSIVE_LEVEL)
00231 STDMETHODIMP_(NTSTATUS)
00232 BdaUninitFilter(
00233 _In_ PKSFILTER pKSFilter);
00234
00235 _Must_inspect_result_
00236 _IRQL_requires_(PASSIVE_LEVEL)
00237 STDMETHODIMP_(NTSTATUS)
00238 BdaValidateNodeProperty(
00239 _In_ PIRP Irp,
00240 _In_ KSPROPERTY *pKSProperty);
00241
00242 #if defined(__cplusplus)
00243 }
00244 #endif
00245
00246 #endif