13const GUID KSPROPSETID_BdaPinControl = {0x0ded49d5, 0xa8b7, 0x4d5d, {0x97, 0xa1, 0x12, 0xb0, 0xc1, 0x95, 0x87, 0x4d}};
14const GUID IID_IBDA_PinControl = {0x0DED49D5, 0xA8B7, 0x4d5d, {0x97, 0xA1, 0x12, 0xB0, 0xC1, 0x95, 0x87, 0x4D}};
15const GUID IID_IPin = {0x56a86891, 0x0ad4, 0x11ce, {0xb0, 0x3a, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70}};
143 if (!pulRegistrationCtx)
177 *pOutNetworkProvider =
NULL;
197 *pOutNetworkProvider = pNetworkProvider;
199 if (pNetworkProvider)
209 IPin * pConnectedPin,
210 ULONG RegistrationCtx,
249 FILTER_INFO FilterInfo;
250 ULONG RegistrationCtx = 0;
285 if (!PinInfo.pFilter)
297 hr = PinInfo.pFilter->QueryFilterInfo(&FilterInfo);
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)
#define InterlockedIncrement
#define InterlockedDecrement
#define STDMETHODCALLTYPE
CBDAPinControl(HANDLE hFile, IBDA_NetworkProvider *pProvider, IPin *pConnectedPin, ULONG RegistrationCtx)
HRESULT STDMETHODCALLTYPE GetPinType(ULONG *pulPinType)
HRESULT STDMETHODCALLTYPE RegistrationContext(ULONG *pulRegistrationCtx)
HRESULT STDMETHODCALLTYPE GetPinID(ULONG *pulPinID)
STDMETHODIMP_(ULONG) AddRef()
virtual ~CBDAPinControl()
STDMETHODIMP_(ULONG) Release()
IBDA_NetworkProvider * m_pProvider
STDMETHODIMP QueryInterface(REFIID InterfaceId, PVOID *Interface)
virtual ULONG Release(__in_opt PVOID Tag=NULL, __in LONG Line=0, __in_opt PSTR File=NULL)
virtual _Must_inspect_result_ NTSTATUS QueryInterface(__in FxQueryInterfaceParams *Params)
const GUID IID_IBDA_NetworkProvider
#define INVALID_HANDLE_VALUE
UINT(* handler)(MSIPACKAGE *)
#define KSPROPERTY_TYPE_GET
FxWmiProvider * pProvider
void WINAPI SHIM_OBJ_NAME() OutputDebugStringW(LPCWSTR lpOutputString)
HRESULT RegisterDeviceFilter([in] IUnknown *pUnkFilterControl, [in, out] ULONG *ppvRegisitrationContext)
HRESULT Next([in] ULONG cFilters, [out] IBaseFilter **ppFilter, [out] ULONG *pcFetched)
HRESULT EnumFilters([out] IEnumFilters **ppEnum)
HRESULT QueryPinInfo([out] PIN_INFO *pInfo)
HRESULT ConnectedTo([out] IPin **pPin)
HRESULT QueryInterface([in] REFIID riid, [out, iid_is(riid)] void **ppvObject)
#define IOCTL_KS_PROPERTY
KSDDKAPI HRESULT WINAPI KsSynchronousDeviceControl(HANDLE Handle, ULONG IoControl, PVOID InBuffer, ULONG InLength, PVOID OutBuffer, ULONG OutLength, PULONG BytesReturned)
const GUID KSPROPSETID_BdaPinControl
HRESULT GetNetworkProviderFromGraph(IFilterGraph *pGraph, IBDA_NetworkProvider **pOutNetworkProvider)
HRESULT WINAPI CBDAPinControl_fnConstructor(IUnknown *pUnkOuter, REFIID riid, LPVOID *ppv)
const GUID IID_IBDA_PinControl
HRESULT CBDAPinControl_RealConstructor(HANDLE hPin, IBDA_NetworkProvider *pNetworkProvider, IPin *pConnectedPin, ULONG RegistrationCtx, IUnknown *pUnkOuter, REFIID riid, LPVOID *ppv)
#define IsEqualGUID(rguid1, rguid2)
_Must_inspect_result_ _In_ WDFDEVICE _In_ LPCGUID _Out_ PINTERFACE Interface
_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 DebugBreak(void)