13 const GUID KSPROPSETID_BdaPinControl = {0x0ded49d5, 0xa8b7, 0x4d5d, {0x97, 0xa1, 0x12, 0xb0, 0xc1, 0x95, 0x87, 0x4d}};
14 const GUID IID_IBDA_PinControl = {0x0DED49D5, 0xA8B7, 0x4d5d, {0x97, 0xA1, 0x12, 0xB0, 0xC1, 0x95, 0x87, 0x4D}};
15 const GUID IID_IPin = {0x56a86891, 0x0ad4, 0x11ce, {0xb0, 0x3a, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70}};
70 reinterpret_cast<IUnknown*>(*Output)->AddRef();
76 reinterpret_cast<IBDA_PinControl*>(*Output)->AddRef();
101 #ifdef BDAPLGIN_TRACE 126 #ifdef BDAPLGIN_TRACE 139 #ifdef BDAPLGIN_TRACE 143 if (!pulRegistrationCtx)
177 *pOutNetworkProvider =
NULL;
197 *pOutNetworkProvider = pNetworkProvider;
199 if (pNetworkProvider)
209 IPin * pConnectedPin,
210 ULONG RegistrationCtx,
217 #ifdef BDAPLGIN_TRACE 249 FILTER_INFO FilterInfo;
250 ULONG RegistrationCtx = 0;
275 hr = pPin->QueryPinInfo(&PinInfo);
285 if (!PinInfo.pFilter)
297 hr = PinInfo.pFilter->QueryFilterInfo(&FilterInfo);
310 hr = pPin->ConnectedTo(&pConnectedPin);
321 pNetworkProvider =
NULL;
322 pConnectedPin =
NULL;
339 OutputDebugStringW(
L"CBDAPinControl_fnConstructor registering device filter with network provider\n");
351 pNetworkProvider =
NULL;
363 swprintf(
Buffer,
L"CBDAPinControl_fnConstructor failed to register filter with %lx\n",
hr);
371 FilterInfo.pGraph->Release();
374 PinInfo.pFilter->Release();
383 if (pNetworkProvider)
HRESULT STDMETHODCALLTYPE GetPinType(ULONG *pulPinType)
#define IOCTL_KS_PROPERTY
virtual ULONG Release(__in_opt PVOID Tag=NULL, __in LONG Line=0, __in_opt PSTR File=NULL)
CBDAPinControl(HANDLE hFile, IBDA_NetworkProvider *pProvider, IPin *pConnectedPin, ULONG RegistrationCtx)
FxWmiProvider * pProvider
virtual ~CBDAPinControl()
const GUID IID_IBDA_PinControl
HRESULT STDMETHODCALLTYPE RegistrationContext(ULONG *pulRegistrationCtx)
const GUID KSPROPSETID_BdaPinControl
#define INVALID_HANDLE_VALUE
KSDDKAPI HRESULT WINAPI KsSynchronousDeviceControl(HANDLE Handle, ULONG IoControl, PVOID InBuffer, ULONG InLength, PVOID OutBuffer, ULONG OutLength, PULONG BytesReturned)
HRESULT RegisterDeviceFilter([in] IUnknown *pUnkFilterControl, [in, out] ULONG *ppvRegisitrationContext)
#define KSPROPERTY_TYPE_GET
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST _In_ ULONG _In_opt_ PWDF_MEMORY_DESCRIPTOR _In_opt_ PWDF_MEMORY_DESCRIPTOR _In_opt_ PWDF_REQUEST_SEND_OPTIONS _Out_opt_ PULONG_PTR BytesReturned
void WINAPI SHIM_OBJ_NAME() OutputDebugStringW(LPCWSTR lpOutputString)
STDMETHODIMP_(ULONG) AddRef()
void WINAPI DebugBreak(void)
IBDA_NetworkProvider * m_pProvider
#define STDMETHODCALLTYPE
STDMETHODIMP_(ULONG) Release()
HRESULT CBDAPinControl_RealConstructor(HANDLE hPin, IBDA_NetworkProvider *pNetworkProvider, IPin *pConnectedPin, ULONG RegistrationCtx, IUnknown *pUnkOuter, REFIID riid, LPVOID *ppv)
#define InterlockedDecrement
HRESULT STDMETHODCALLTYPE GetPinID(ULONG *pulPinID)
#define InterlockedIncrement
IN PVOID IN PVOID IN USHORT IN USHORT IN PINTERFACE Interface
HRESULT Next([in] ULONG cFilters, [out] IBaseFilter **ppFilter, [out] ULONG *pcFetched)
BOOL WINAPI IsEqualGUID(REFGUID rguid1, REFGUID rguid2)
HRESULT QueryInterface([in] REFIID riid, [out, iid_is(riid)] void **ppvObject)
const GUID IID_IBDA_NetworkProvider
virtual _Must_inspect_result_ NTSTATUS QueryInterface(__in FxQueryInterfaceParams *Params)
UINT(* handler)(MSIPACKAGE *)
HRESULT EnumFilters([out] IEnumFilters **ppEnum)
HRESULT WINAPI CBDAPinControl_fnConstructor(IUnknown *pUnkOuter, REFIID riid, LPVOID *ppv)
STDMETHODIMP QueryInterface(REFIID InterfaceId, PVOID *Interface)
HRESULT GetNetworkProviderFromGraph(IFilterGraph *pGraph, IBDA_NetworkProvider **pOutNetworkProvider)