11const GUID IID_IPersistPropertyBag = {0x37D84F60, 0x42CB, 0x11CE, {0x81, 0x35, 0x00, 0xAA, 0x00, 0x4B, 0xB8, 0x51}};
12const GUID IID_ISpecifyPropertyPages = {0xB196B28B, 0xBAB4, 0x101A, {0xB6, 0x9C, 0x00, 0xAA, 0x00, 0x34, 0x1D, 0x07}};
13const GUID IID_IPersistStream = {0x00000109, 0x0000, 0x0000, {0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46}};
14const GUID IID_IPersist = {0x0000010c, 0x0000, 0x0000, {0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46}};
15const GUID IID_IBDA_DeviceControl = {0xFD0A5AF3, 0xB41D, 0x11d2, {0x9C, 0x95, 0x00, 0xC0, 0x4F, 0x79, 0x71, 0xE0}};
16const GUID IID_IKsAggregateControl = {0x7F40EAC0, 0x3947, 0x11D2, {0x87, 0x4E, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96}};
17const GUID IID_IKsClockPropertySet = {0x5C5CBD84, 0xE755, 0x11D0, {0xAC, 0x18, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96}};
18const GUID IID_IKsTopology = {0x28F54683, 0x06FD, 0x11D2, {0xB2, 0x7A, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96}};
19const GUID IID_IKsClock = {0x877E4351, 0x6FEA, 0x11D0, {0xB8, 0x63, 0x00, 0xAA, 0x00, 0xA2, 0x16, 0xA1}};
29 public IAMDeviceRemoval,
35 public IKsClockPropertySet,
39 public IKsAggregateControl
203 m_FilterState(State_Stopped),
236 else if (
IsEqualGUID(refiid, IID_IAMDeviceRemoval))
238 *
Output = (IAMDeviceRemoval*)(
this);
239 reinterpret_cast<IAMDeviceRemoval*
>(*Output)->AddRef();
256 *
Output = (IKsObject*)(
this);
257 reinterpret_cast<IKsObject*
>(*Output)->AddRef();
262 *
Output = (IKsClock*)(
this);
263 reinterpret_cast<IKsClock*
>(*Output)->AddRef();
285 else if (
IsEqualGUID(refiid, IID_IAMFilterMiscFlags))
305 *
Output = (IKsTopology*)(
this);
306 reinterpret_cast<IKsTopology*
>(*Output)->AddRef();
311 *
Output = (IKsAggregateControl*)(
this);
312 reinterpret_cast<IKsAggregateControl*
>(*Output)->AddRef();
324 *
Output = (IKsClockPropertySet*)(
this);
325 reinterpret_cast<IKsClockPropertySet*
>(*Output)->AddRef();
411 hr =
pin->QueryDirection(&PinDir);
422 hPin =
pObject->KsGetObjectHandle();
463 ULONG OutputBufferSize)
670 if (!pdwAdviseCookie)
692 Event->EventData.Alignment.Alignment[0] = 0;
693 Event->EventData.Alignment.Alignment[1] = 0;
694 Event->MarkTime = baseTime + streamTime;
738 if (!pdwAdviseCookie)
759 Event->EventData.SemaphoreHandle.Semaphore = (
HANDLE)hSemaphore;
760 Event->EventData.SemaphoreHandle.Reserved = 0;
761 Event->EventData.SemaphoreHandle.Adjustment = 1;
763 Event->Interval = periodTime;
823 DWORD *pCapabilities)
871 *pCapabilities = (*pCapabilities & TempCaps);
882 DWORD *pCapabilities)
988 pGuid = (
LPGUID)(FormatList + 1);
1019 OutputDebugStringW(
L"CKsProxy::IsFormatSupported plugin does not support IMediaSeeking interface\n");
1055 if (FormatList->
Count)
1145 const GUID *pFormat)
1165 const GUID *pFormat)
1360 const GUID *pTargetFormat,
1362 const GUID *pSourceFormat)
1366 GUID SourceFormat, TargetFormat;
1384 pTargetFormat = &TargetFormat;
1394 pSourceFormat = &SourceFormat;
1397 Property.SourceFormat = *pSourceFormat;
1398 Property.TargetFormat = *pTargetFormat;
1440 DWORD dwCurrentFlags,
1453 Positions.
Current = *pCurrent;
1455 Positions.
Stop = *pStop;
1500 hr = pSeek->
SetPositions(pCurrent, dwCurrentFlags, pStop, dwStopFlags);
1678 hr =
pin->QueryDirection(&PinDirection);
1711 ULONG PropertyLength,
1771 DWORD cbInstanceData,
1816 DWORD cbInstanceData,
1861 DWORD *pTypeSupport)
2005 swprintf(
Buffer,
L"BytesReturned %lu majortype %s subtype %s bFixedSizeSamples %u bTemporalCompression %u lSampleSize %u formattype %s, pUnk %p cbFormat %u pbFormat %p\n",
BytesReturned, pMajor, pSub, MediaType.bFixedSizeSamples, MediaType.bTemporalCompression, MediaType.lSampleSize, pFormat, MediaType.pUnk, MediaType.cbFormat, MediaType.pbFormat);
2011 if (MediaType.cbFormat)
2014 if (!MediaType.pbFormat)
2078 if (pwszSymbolicLink)
2081 if (!*pwszSymbolicLink)
2182 ULONG NumProperty = 0;
2184 ULONG NumEvents = 0;
2207 NumProperty /=
sizeof(
GUID);
2209 NumEvents /=
sizeof(
GUID);
2251 *NumGuids = NumProperty+NumEvents+
NumMethods;
2413 *OutPinName = PinName;
2443 *OutPinName = PinName;
2460 ULONG OutputPin = 0;
2475 swprintf(
Buffer,
L"CKsProxy::CreatePins GetPinInstanceCount failed with %lx\n",
hr);
2488 swprintf(
Buffer,
L"CKsProxy::CreatePins GetPinCommunication failed with %lx\n",
hr);
2499 swprintf(
Buffer,
L"CKsProxy::CreatePins Instances.CurrentCount == Instances.PossibleCount\n");
2540 swprintf(
Buffer,
L"CKsProxy::CreatePins CInputPin_Constructor failed with %lx\n",
hr);
2555 swprintf(
Buffer,
L"CKsProxy::CreatePins COutputPin_Constructor failed with %lx\n",
hr);
2596 hr = pPropBag->
Read(
L"DevicePath", &varName, pErrorLog);
2829 hr =
Pin->ConnectedTo(&TempPin);
2840 hr =
Pin->QueryPinInfo(&PinInfo);
2844 if (PinInfo.pFilter)
2845 PinInfo.pFilter->Release();
2882 DWORD dwMilliSecsTimeout,
2925 hClock = pKsClock->KsGetClockHandle();
2951 hPin =
pObject->KsGetObjectHandle();
2970 swprintf(
Buffer,
L"CKsProxy::SetSyncSource KSPROPERTY_STREAM_MASTERCLOCK failed with %lx\n",
hr);
2981 hr =
pin->QueryDirection(&PinDir);
3168 swprintf(
Buffer,
L"CKsProxy_Constructor pUnkOuter %p riid %s\n", pUnkOuter, pstr);
#define InterlockedIncrement
#define InterlockedDecrement
enum _PinDirection PIN_DIRECTION
@ AM_FILTER_MISC_FLAGS_IS_SOURCE
#define STDMETHODCALLTYPE
#define RegCloseKey(hKey)
_In_ PSTORAGE_PROPERTY_ID PropertyId
_In_ ULONG _In_opt_ WDFREQUEST _In_opt_ PVOID _In_ size_t _In_ PVOID _In_ size_t _Out_ size_t * DataLength
HRESULT STDMETHODCALLTYPE Load(IPropertyBag *pPropBag, IErrorLog *pErrorLog)
HRESULT STDMETHODCALLTYPE Unregister(void)
HRESULT STDMETHODCALLTYPE QueryFilterInfo(FILTER_INFO *pInfo)
HRESULT STDMETHODCALLTYPE KsProperty(PKSPROPERTY Property, ULONG PropertyLength, LPVOID PropertyData, ULONG DataLength, ULONG *BytesReturned)
HRESULT STDMETHODCALLTYPE KsGetPhysicalTime(LONGLONG *Time)
HRESULT STDMETHODCALLTYPE KsSetTime(LONGLONG Time)
HRESULT STDMETHODCALLTYPE AdvisePeriodic(REFERENCE_TIME startTime, REFERENCE_TIME periodTime, HSEMAPHORE hSemaphore, DWORD_PTR *pdwAdviseCookie)
HANDLE STDMETHODCALLTYPE KsGetObjectHandle()
CLSID m_DeviceInterfaceGUID
HRESULT STDMETHODCALLTYPE GetTimeFormat(GUID *pFormat)
HRESULT STDMETHODCALLTYPE GetPinInstanceCount(ULONG PinId, PKSPIN_CINSTANCES Instances)
HRESULT STDMETHODCALLTYPE GetRate(double *pdRate)
HRESULT STDMETHODCALLTYPE KsSetPhysicalTime(LONGLONG Time)
IReferenceClock * m_ReferenceClock
ULONG STDMETHODCALLTYPE GetMiscFlags(void)
HRESULT STDMETHODCALLTYPE IsUsingTimeFormat(const GUID *pFormat)
HRESULT STDMETHODCALLTYPE KsMethod(PKSMETHOD Method, ULONG MethodLength, LPVOID MethodData, ULONG DataLength, ULONG *BytesReturned)
HRESULT STDMETHODCALLTYPE CreateNodeInstance(ULONG NodeId, ULONG Flags, ACCESS_MASK DesiredAccess, IUnknown *UnkOuter, REFGUID InterfaceId, LPVOID *Interface)
std::vector< IPin * > PinVector
HRESULT STDMETHODCALLTYPE Stop(void)
HRESULT STDMETHODCALLTYPE KsRemoveAggregate(REFGUID AggregateClass)
HRESULT STDMETHODCALLTYPE QuerySupported(REFGUID guidPropSet, DWORD dwPropID, DWORD *pTypeSupport)
HRESULT STDMETHODCALLTYPE SetTimeFormat(const GUID *pFormat)
HRESULT STDMETHODCALLTYPE SetSyncSource(IReferenceClock *pClock)
HRESULT STDMETHODCALLTYPE GetDuration(LONGLONG *pDuration)
HRESULT STDMETHODCALLTYPE JoinFilterGraph(IFilterGraph *pGraph, LPCWSTR pName)
FILTER_STATE m_FilterState
HRESULT STDMETHODCALLTYPE KsGetCorrelatedTime(KSCORRELATED_TIME *CorrelatedTime)
HRESULT STDMETHODCALLTYPE GetStopPosition(LONGLONG *pStop)
HRESULT STDMETHODCALLTYPE Set(REFGUID guidPropSet, DWORD dwPropID, LPVOID pInstanceData, DWORD cbInstanceData, LPVOID pPropData, DWORD cbPropData)
HRESULT STDMETHODCALLTYPE CreateClockInstance()
STDMETHODIMP_(ULONG) AddRef()
ProxyPluginVector m_Plugins
HRESULT STDMETHODCALLTYPE GetTime(REFERENCE_TIME *pTime)
HRESULT STDMETHODCALLTYPE Unadvise(DWORD_PTR dwAdviseCookie)
HRESULT STDMETHODCALLTYPE GetAvailable(LONGLONG *pEarliest, LONGLONG *pLatest)
HRESULT STDMETHODCALLTYPE Disassociate(void)
STDMETHODIMP QueryInterface(REFIID InterfaceId, PVOID *Interface)
HRESULT STDMETHODCALLTYPE GetCurrentPosition(LONGLONG *pCurrent)
HRESULT STDMETHODCALLTYPE Register(void)
HRESULT STDMETHODCALLTYPE KsAddAggregate(IN REFGUID AggregateClass)
HRESULT STDMETHODCALLTYPE CheckCapabilities(DWORD *pCapabilities)
HRESULT STDMETHODCALLTYPE IsFormatSupported(const GUID *pFormat)
HRESULT STDMETHODCALLTYPE Pause(void)
HRESULT STDMETHODCALLTYPE GetMediaSeekingFormats(PKSMULTIPLE_ITEM *FormatList)
std::vector< IUnknown * > ProxyPluginVector
HRESULT STDMETHODCALLTYPE EnumPins(IEnumPins **ppEnum)
HRESULT STDMETHODCALLTYPE KsGetState(KSSTATE *State)
HRESULT STDMETHODCALLTYPE CreatePins()
HRESULT STDMETHODCALLTYPE GetPinCommunication(ULONG PinId, KSPIN_COMMUNICATION *Communication)
HRESULT STDMETHODCALLTYPE KsGetResolution(KSRESOLUTION *Resolution)
HRESULT STDMETHODCALLTYPE ConvertTimeFormat(LONGLONG *pTarget, const GUID *pTargetFormat, LONGLONG Source, const GUID *pSourceFormat)
HRESULT STDMETHODCALLTYPE KsSetCorrelatedPhysicalTime(KSCORRELATED_TIME *CorrelatedTime)
HRESULT STDMETHODCALLTYPE GetSyncSource(IReferenceClock **pClock)
HRESULT STDMETHODCALLTYPE GetPreroll(LONGLONG *pllPreroll)
HRESULT STDMETHODCALLTYPE Get(REFGUID guidPropSet, DWORD dwPropID, LPVOID pInstanceData, DWORD cbInstanceData, LPVOID pPropData, DWORD cbPropData, DWORD *pcbReturned)
HRESULT STDMETHODCALLTYPE Run(REFERENCE_TIME tStart)
HRESULT STDMETHODCALLTYPE SetRate(double dRate)
HRESULT STDMETHODCALLTYPE SetPinState(KSSTATE State)
HRESULT STDMETHODCALLTYPE IsDirty(void)
HRESULT STDMETHODCALLTYPE KsSetCorrelatedTime(KSCORRELATED_TIME *CorrelatedTime)
HRESULT STDMETHODCALLTYPE GetClassID(CLSID *pClassID)
HRESULT STDMETHODCALLTYPE GetSizeMax(ULARGE_INTEGER *pcbSize)
HRESULT STDMETHODCALLTYPE PerformClockProperty(ULONG PropertyId, ULONG PropertyFlags, PVOID OutputBuffer, ULONG OutputBufferSize)
HRESULT STDMETHODCALLTYPE QueryPreferredFormat(GUID *pFormat)
HRESULT STDMETHODCALLTYPE Reassociate(void)
HRESULT STDMETHODCALLTYPE LoadProxyPlugins(LPGUID pGuids, ULONG NumGuids)
HRESULT STDMETHODCALLTYPE GetCapabilities(DWORD *pCapabilities)
HRESULT STDMETHODCALLTYPE GetPinDataflow(ULONG PinId, KSPIN_DATAFLOW *DataFlow)
HRESULT STDMETHODCALLTYPE SetPositions(LONGLONG *pCurrent, DWORD dwCurrentFlags, LONGLONG *pStop, DWORD dwStopFlags)
HRESULT STDMETHODCALLTYPE InitNew(void)
HRESULT STDMETHODCALLTYPE Save(IPropertyBag *pPropBag, BOOL fClearDirty, BOOL fSaveAllProperties)
HRESULT STDMETHODCALLTYPE FindPin(LPCWSTR Id, IPin **ppPin)
HRESULT STDMETHODCALLTYPE QueryVendorInfo(LPWSTR *pVendorInfo)
HRESULT STDMETHODCALLTYPE KsGetCorrelatedPhysicalTime(KSCORRELATED_TIME *CorrelatedTime)
HRESULT STDMETHODCALLTYPE DeviceInfo(CLSID *pclsidInterfaceClass, LPWSTR *pwszSymbolicLink)
HRESULT STDMETHODCALLTYPE GetSupportedSets(LPGUID *pOutGuid, PULONG NumGuids)
HRESULT STDMETHODCALLTYPE GetNumberOfPins(PULONG NumPins)
HRESULT STDMETHODCALLTYPE AdviseTime(REFERENCE_TIME baseTime, REFERENCE_TIME streamTime, HEVENT hEvent, DWORD_PTR *pdwAdviseCookie)
HRESULT STDMETHODCALLTYPE GetPositions(LONGLONG *pCurrent, LONGLONG *pStop)
HRESULT STDMETHODCALLTYPE KsEvent(PKSEVENT Event, ULONG EventLength, LPVOID EventData, ULONG DataLength, ULONG *BytesReturned)
HRESULT STDMETHODCALLTYPE GetState(DWORD dwMilliSecsTimeout, FILTER_STATE *State)
STDMETHODIMP_(ULONG) Release()
HRESULT STDMETHODCALLTYPE GetPages(CAUUID *pPages)
HRESULT STDMETHODCALLTYPE GetPinName(ULONG PinId, KSPIN_DATAFLOW DataFlow, ULONG PinCount, LPWSTR *OutPinName)
HRESULT STDMETHODCALLTYPE KsGetTime(LONGLONG *Time)
HANDLE STDMETHODCALLTYPE KsGetClockHandle()
virtual ULONG Release(__in_opt PVOID Tag=NULL, __in LONG Line=0, __in_opt PSTR File=NULL)
const GUID IID_IKsPropertySet
const GUID IID_IBaseFilter
LONG WINAPI RegOpenKeyExW(HKEY hKey, LPCWSTR lpSubKey, DWORD ulOptions, REGSAM samDesired, PHKEY phkResult)
#define INVALID_HANDLE_VALUE
#define FILE_ATTRIBUTE_NORMAL
UINT(* handler)(MSIPACKAGE *)
HRESULT WINAPI DECLSPEC_HOTPATCH CoCreateInstance(REFCLSID rclsid, LPUNKNOWN pUnkOuter, DWORD dwClsContext, REFIID iid, LPVOID *ppv)
HRESULT WINAPI StringFromCLSID(REFCLSID id, LPOLESTR *idstr)
HDEVINFO WINAPI SetupDiCreateDeviceInfoListExW(const GUID *ClassGuid, HWND hwndParent, PCWSTR MachineName, PVOID Reserved)
BOOL WINAPI SetupDiOpenDeviceInterfaceW(HDEVINFO DeviceInfoSet, PCWSTR DevicePath, DWORD OpenFlags, PSP_DEVICE_INTERFACE_DATA DeviceInterfaceData)
BOOL WINAPI SetupDiDestroyDeviceInfoList(HDEVINFO devinfo)
static ULONGLONG startTime
#define MAKE_HRESULT(sev, fac, code)
const GUID IID_IKsControl
#define KSPROPERTY_TYPE_SET
#define KSPROPERTY_TYPE_SETSUPPORT
struct KSIDENTIFIER * PKSPROPERTY
#define KSPROPERTY_TYPE_GET
IN PDCB IN VBO IN ULONG IN BOOLEAN Pin
_In_ WDFDEVICE _In_ PWDF_DEVICE_INTERFACE_PROPERTY_DATA PropertyData
return pTarget GetState()
_Must_inspect_result_ typedef _Out_ PHIDP_CAPS Capabilities
VOID WINAPI CoTaskMemFree(LPVOID ptr)
LPVOID WINAPI CoTaskMemAlloc(SIZE_T size)
void WINAPI SHIM_OBJ_NAME() OutputDebugStringW(LPCWSTR lpOutputString)
_Check_return_ _CRTIMP int __cdecl swscanf(_In_z_ const wchar_t *_Src, _In_z_ _Scanf_format_string_ const wchar_t *_Format,...)
_CRTIMP size_t __cdecl wcslen(_In_z_ const wchar_t *_Str)
struct IBaseFilter::_FilterInfo FILTER_INFO
HRESULT Read([in] LPCOLESTR pszPropName, [in, out] VARIANT *pVar, [in] IErrorLog *pErrorLog)
HRESULT Read([out, size_is(cb), length_is(*pcbRead)] void *pv, [in] ULONG cb, [out] ULONG *pcbRead)
struct ISpecifyPropertyPages::tagCAUUID CAUUID
HRESULT QueryInterface([in] REFIID riid, [out, iid_is(riid)] void **ppvObject)
_In_ PKSCLOCK_CREATE ClockCreate
@ KS_SEEKING_CanSeekForwards
@ KS_SEEKING_CanPlayBackwards
@ KS_SEEKING_CanSeekAbsolute
@ KS_SEEKING_CanGetCurrentPos
@ KS_SEEKING_CanGetDuration
@ KS_SEEKING_CanGetStopPos
@ KS_SEEKING_CanSeekBackwards
@ KSPROPERTY_CONNECTION_STATE
#define KSPROPSETID_MediaSeeking
#define IOCTL_KS_PROPERTY
@ KSPROPERTY_MEDIASEEKING_CONVERTTIMEFORMAT
@ KSPROPERTY_MEDIASEEKING_CAPABILITIES
@ KSPROPERTY_MEDIASEEKING_TIMEFORMAT
@ KSPROPERTY_MEDIASEEKING_DURATION
@ KSPROPERTY_MEDIASEEKING_PREROLL
@ KSPROPERTY_MEDIASEEKING_STOPPOSITION
@ KSPROPERTY_MEDIASEEKING_POSITION
@ KSPROPERTY_MEDIASEEKING_FORMATS
@ KSPROPERTY_MEDIASEEKING_AVAILABLE
@ KSPROPERTY_MEDIASEEKING_POSITIONS
@ KSPROPERTY_PIN_COMMUNICATION
@ KSPROPERTY_PIN_CINSTANCES
@ KSPROPERTY_PIN_DATAFLOW
@ KSEVENT_CLOCK_POSITION_MARK
@ KSEVENT_CLOCK_INTERVAL_MARK
#define KSPROPSETID_Stream
#define KSPROPSETID_Connection
@ KSPIN_COMMUNICATION_BRIDGE
@ KSPIN_COMMUNICATION_NONE
#define KSEVENTSETID_Clock
#define KSEVENTF_EVENT_HANDLE
#define KSEVENT_TYPE_ENABLE
struct KSEVENT_TIME_INTERVAL * PKSEVENT_TIME_INTERVAL
@ KSPROPERTY_CLOCK_CORRELATEDTIME
@ KSPROPERTY_CLOCK_RESOLUTION
@ KSPROPERTY_CLOCK_PHYSICALTIME
@ KSPROPERTY_CLOCK_CORRELATEDPHYSICALTIME
@ KSPROPERTY_STREAM_MASTERCLOCK
#define KSEVENTF_SEMAPHORE_HANDLE
#define IOCTL_KS_ENABLE_EVENT
struct KSEVENT_TIME_MARK * PKSEVENT_TIME_MARK
struct KSMULTIPLE_ITEM * PKSMULTIPLE_ITEM
#define KSPROPSETID_Clock
#define IOCTL_KS_DISABLE_EVENT
HRESULT WINAPI CEnumPins_fnConstructor(std::vector< IPin * > Pins, REFIID riid, LPVOID *ppv)
KSDDKAPI HRESULT WINAPI KsSynchronousDeviceControl(HANDLE Handle, ULONG IoControl, PVOID InBuffer, ULONG InLength, PVOID OutBuffer, ULONG OutLength, PULONG BytesReturned)
KSDDKAPI DWORD NTAPI KsCreateClock(HANDLE ConnectionHandle, PKSCLOCK_CREATE ClockCreate, PHANDLE ClockHandle)
#define FILE_FLAG_OVERLAPPED
#define ERROR_FILE_NOT_FOUND
static PLARGE_INTEGER Time
_In_ UINT _In_ UINT _In_ PNDIS_PACKET Source
HRESULT WINAPI CKsNode_Constructor(IUnknown *pUnkOuter, HANDLE ParentHandle, ULONG NodeId, ACCESS_MASK DesiredAccess, REFIID riid, LPVOID *ppv)
_In_ ULONG _In_ ULONG _In_ ULONG Length
_Check_return_ HRESULT WINAPI StringFromIID(_In_ REFIID rclsid, _Outptr_ LPOLESTR *lplpsz)
HRESULT WINAPI COutputPin_Constructor(IBaseFilter *ParentFilter, LPCWSTR PinName, ULONG PinId, KSPIN_COMMUNICATION Communication, REFIID riid, LPVOID *ppv)
HRESULT STDMETHODCALLTYPE COutputPin_SetState(IPin *Pin, KSSTATE State)
HRESULT WINAPI CKsProxy_Constructor(IUnknown *pUnkOuter, REFIID riid, LPVOID *ppv)
const GUID IID_IPersistStream
const GUID IID_ISpecifyPropertyPages
const GUID IID_IBDA_DeviceControl
const GUID IID_IKsAggregateControl
const GUID IID_IKsTopology
const GUID IID_IPersistPropertyBag
const GUID IID_IKsClockPropertySet
#define IsEqualGUID(rguid1, rguid2)
#define IsEqualIID(riid1, riid2)
_CRTIMP wchar_t *__cdecl wcscpy(_Out_writes_z_(_String_length_(_Source)+1) wchar_t *_Dest, _In_z_ const wchar_t *_Source)
struct _SP_DEVICE_INTERFACE_DATA SP_DEVICE_INTERFACE_DATA
_In_ const GUID _In_ ULONG PinCount
WCHAR achName[MAX_FILTER_NAME]
KS_SEEKING_FLAGS StopFlags
KS_SEEKING_FLAGS CurrentFlags
Property(long _type, long _tag, INREAL _value)
VOID WINAPI InitializeCriticalSection(OUT LPCRITICAL_SECTION lpCriticalSection)
_In_ WDFCOLLECTION _In_ ULONG Index
_Must_inspect_result_ _In_ WDFDEVICE _In_ ULONG _In_ ACCESS_MASK DesiredAccess
_Must_inspect_result_ _In_ WDFDEVICE _In_ LPCGUID _Out_ PINTERFACE Interface
_Must_inspect_result_ _In_ WDFDEVICE _In_ LPCGUID _Out_ PINTERFACE _In_ USHORT _In_ USHORT Version
_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
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST _In_opt_ PWDF_MEMORY_DESCRIPTOR OutputBuffer
DWORD WINAPI GetLastError(void)
void WINAPI LeaveCriticalSection(LPCRITICAL_SECTION)
void WINAPI EnterCriticalSection(LPCRITICAL_SECTION)
_In_ PCCERT_CONTEXT _In_opt_ LPFILETIME pTime
#define ERROR_SET_NOT_FOUND
#define HKEY_LOCAL_MACHINE
_Must_inspect_result_ _In_ ULONG Flags