12#define KSDDKAPI DECLSPEC_IMPORT
15#define STATIC_IID_IKsObject\
16 0x423c13a2L, 0x2070, 0x11d0, {0x9e, 0xf7, 0x00, 0xaa, 0x00, 0xa2, 0x16, 0xa1}
18#define STATIC_IID_IKsPinEx\
19 0x7bb38260L, 0xd19c, 0x11d2, {0xb3, 0x8a, 0x00, 0xa0, 0xc9, 0x5e, 0xc2, 0x2e}
21#define STATIC_IID_IKsPin\
22 0xb61178d1L, 0xa2d9, 0x11cf, {0x9e, 0x53, 0x00, 0xaa, 0x00, 0xa2, 0x16, 0xa1}
24#define STATIC_IID_IKsPinPipe\
25 0xe539cd90L, 0xa8b4, 0x11d1, {0x81, 0x89, 0x00, 0xa0, 0xc9, 0x06, 0x28, 0x02}
27#define STATIC_IID_IKsDataTypeHandler\
28 0x5ffbaa02L, 0x49a3, 0x11d0, {0x9f, 0x36, 0x00, 0xaa, 0x00, 0xa2, 0x16, 0xa1}
30#define STATIC_IID_IKsDataTypeCompletion\
31 0x827D1A0EL, 0x0F73, 0x11D2, {0xB2, 0x7A, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96}
33#define STATIC_IID_IKsInterfaceHandler\
34 0xD3ABC7E0L, 0x9A61, 0x11D0, {0xA4, 0x0D, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96}
36#define STATIC_IID_IKsClockPropertySet\
37 0x5C5CBD84L, 0xE755, 0x11D0, {0xAC, 0x18, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96}
39#define STATIC_IID_IKsAllocator\
40 0x8da64899L, 0xc0d9, 0x11d0, {0x84, 0x13, 0x00, 0x00, 0xf8, 0x22, 0xfe, 0x8a}
42#define STATIC_IID_IKsAllocatorEx\
43 0x091bb63aL, 0x603f, 0x11d1, {0xb0, 0x67, 0x00, 0xa0, 0xc9, 0x06, 0x28, 0x02}
46#ifndef STATIC_IID_IKsPropertySet
47#define STATIC_IID_IKsPropertySet\
48 0x31EFAC30L, 0x515C, 0x11d0, {0xA9, 0xAA, 0x00, 0xAA, 0x00, 0x61, 0xBE, 0x93}
51#define STATIC_IID_IKsTopology\
52 0x28F54683L, 0x06FD, 0x11D2, {0xB2, 0x7A, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96}
54#ifndef STATIC_IID_IKsControl
55#define STATIC_IID_IKsControl\
56 0x28F54685L, 0x06FD, 0x11D2, {0xB2, 0x7A, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96}
59#define STATIC_IID_IKsAggregateControl\
60 0x7F40EAC0L, 0x3947, 0x11D2, {0x87, 0x4E, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96}
62#define STATIC_CLSID_Proxy \
63 0x17CCA71BL, 0xECD7, 0x11D0, {0xB9, 0x08, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96}
67#if !defined(__cplusplus) || _MSC_VER < 1100
69#define IID_IKsQualityForwarder KSCATEGORY_QUALITY
83#define STATIC_IID_IKsQualityForwarder STATIC_KSCATEGORY_QUALITY
88 KsAllocatorMode_Kernel
94 FramingProp_Uninitialized,
100typedef FRAMING_PROP *PFRAMING_PROP;
105 Framing_Cache_Update,
106 Framing_Cache_ReadLast,
107 Framing_Cache_ReadOrig,
117}OPTIMAL_WEIGHT_TOTALS;
120typedef struct IKsPin IKsPin;
121typedef struct IKsAllocator IKsAllocator;
122typedef struct IKsAllocatorEx IKsAllocatorEx;
125#define AllocatorStrategy_DontCare 0
126#define AllocatorStrategy_MinimizeNumberOfFrames 1
127#define AllocatorStrategy_MinimizeFrameSize 2
128#define AllocatorStrategy_MinimizeNumberOfAllocators 4
129#define AllocatorStrategy_MaximizeSpeed 8
131#define PipeFactor_None 0x0
132#define PipeFactor_UserModeUpstream 0x1
133#define PipeFactor_UserModeDownstream 0x2
134#define PipeFactor_MemoryTypes 0x4
135#define PipeFactor_Flags 0x8
136#define PipeFactor_PhysicalRanges 0x10
137#define PipeFactor_OptimalRanges 0x20
138#define PipeFactor_FixedCompression 0x40
139#define PipeFactor_UnknownCompression 0x80
140#define PipeFactor_Buffers 0x100
141#define PipeFactor_Align 0x200
142#define PipeFactor_PhysicalEnd 0x400
143#define PipeFactor_LogicalEnd 0x800
148 PipeState_RangeNotFixed,
149 PipeState_RangeFixed,
150 PipeState_CompressionUnknown,
155typedef struct _PIPE_DIMENSIONS
160}PIPE_DIMENSIONS, *PPIPE_DIMENSIONS;
166 Pipe_Allocator_FirstPin,
167 Pipe_Allocator_LastPin,
168 Pipe_Allocator_MiddlePin
169}PIPE_ALLOCATOR_PLACE, *PPIPE_ALLOCATOR_PLACE;
173 KS_MemoryTypeDontCare = 0,
174 KS_MemoryTypeKernelPaged,
175 KS_MemoryTypeKernelNonPaged,
176 KS_MemoryTypeDeviceHostMapped,
177 KS_MemoryTypeDeviceSpecific,
180}KS_LogicalMemoryType, *PKS_LogicalMemoryType;
182typedef struct _PIPE_TERMINATION {
184 ULONG OutsideFactors;
192typedef struct _ALLOCATOR_PROPERTIES_EX
202 PIPE_TERMINATION
Input;
207 KS_LogicalMemoryType LogicalMemoryType;
208 PIPE_ALLOCATOR_PLACE AllocatorPlace;
209 PIPE_DIMENSIONS Dimensions;
211 IKsAllocatorEx* PrevSegment;
212 ULONG CountNextSegments;
213 IKsAllocatorEx** NextSegments;
216}ALLOCATOR_PROPERTIES_EX;
218typedef ALLOCATOR_PROPERTIES_EX *PALLOCATOR_PROPERTIES_EX;
223struct DECLSPEC_UUID(
"5C5CBD84-E755-11D0-AC18-00A0C9223196") IKsClockPropertySet;
225#define INTERFACE IKsClockPropertySet
271interface DECLSPEC_UUID(
"8da64899-c0d9-11d0-8413-0000f822fe8a") IKsAllocator;
273#define INTERFACE IKsAllocator
279 STDMETHOD_(KSALLOCATORMODE, KsGetAllocatorMode)(
292interface DECLSPEC_UUID(
"091bb63a-603f-11d1-b067-00a0c9062802") IKsAllocatorEx;
294#define INTERFACE IKsAllocatorEx
297 STDMETHOD_(PALLOCATOR_PROPERTIES_EX, KsGetProperties)(
302 PALLOCATOR_PROPERTIES_EX
315 KsPeekOperation_PeekOnly,
316 KsPeekOperation_AddRef
319typedef struct _KSSTREAM_SEGMENT *PKSSTREAM_SEGMENT;
321interface DECLSPEC_UUID(
"b61178d1-a2d9-11cf-9e53-00aa00a216a1") IKsPin;
324#define INTERFACE IKsPin
356 PKSSTREAM_SEGMENT StreamSegment
382interface DECLSPEC_UUID(
"7bb38260-d19c-11d2-b38a-00a0c95ec22e") IKsPinEx;
384#define INTERFACE IKsPinEx
394interface DECLSPEC_UUID(
"e539cd90-a8b4-11d1-8189-00a0c9062802") IKsPinPipe;
396#define INTERFACE IKsPinPipe
402 PFRAMING_PROP FramingProp,
403 FRAMING_CACHE_OPS Option
408 PFRAMING_PROP FramingProp,
409 FRAMING_CACHE_OPS Option
420 IKsAllocatorEx *KsAllocator
446interface DECLSPEC_UUID(
"CD5EBE6B-8B6E-11D1-8AE0-00A0C9223196") IKsPinFactory;
448#define INTERFACE IKsPinFactory
462interface DECLSPEC_UUID(
"5ffbaa02-49a3-11d0-9f36-00aa00a216a1") IKsDataTypeHandler;
464#define INTERFACE IKsDataTypeHandler
471 KSIOOPERATION IoOperation,
482 KSIOOPERATION IoOperation
494interface DECLSPEC_UUID(
"827D1A0E-0F73-11D2-B27A-00A0C9223196") IKsDataTypeCompletion;
496#define INTERFACE IKsDataTypeCompletion
507interface DECLSPEC_UUID(
"D3ABC7E0-9A61-11d0-A40D-00A0C9223196") IKsInterfaceHandler;
509#define INTERFACE IKsInterfaceHandler
518 IKsDataTypeHandler *KsDataTypeHandler,
521 KSIOOPERATION IoOperation,
522 PKSSTREAM_SEGMENT *StreamSegment
526 PKSSTREAM_SEGMENT StreamSegment
531typedef struct _KSSTREAM_SEGMENT
533 IKsInterfaceHandler *KsInterfaceHandler;
534 IKsDataTypeHandler *KsDataTypeHandler;
535 KSIOOPERATION IoOperation;
540interface DECLSPEC_UUID(
"423c13a2-2070-11d0-9ef7-00aa00a216a1") IKsObject;
542#define INTERFACE IKsObject
550interface DECLSPEC_UUID(
"97ebaacb-95bd-11d0-a3ea-00a0c9223196") IKsQualityForwarder;
552#define INTERFACE IKsQualityForwarder
561#if ( (NTDDI_VERSION >= NTDDI_WINXPSP2) && (NTDDI_VERSION < NTDDI_WS03) ) || (NTDDI_VERSION >= NTDDI_WS03SP1)
563interface DECLSPEC_UUID(
"412bd695-f84b-46c1-ac73-54196dbc8fa7") IKsNotifyEvent;
565#define INTERFACE IKsNotifyEvent
620 ULONG* MediaTypeCount);
633#ifndef _IKsPropertySet_
634#if !defined(__cplusplus) || _MSC_VER < 1100
640#if !defined(__cplusplus) || _MSC_VER < 1100
645#if !defined(__cplusplus) || _MSC_VER < 1100
650#if !defined(__cplusplus) || _MSC_VER < 1100
656#define CLSID_Proxy DEFINE_GUIDNAMED(CLSID_Proxy)
660#ifndef _IKsPropertySet_
661#if !defined(__cplusplus) || _MSC_VER < 1100
666#if !defined(__cplusplus) || _MSC_VER < 1100
669DECLSPEC_UUID(
"17CCA71B-ECD7-11D0-B908-00A0C9223196") CLSID_Proxy;
674#ifndef _IKsPropertySet_
675#define _IKsPropertySet_
677#define KSPROPERTY_SUPPORT_GET 1
678#define KSPROPERTY_SUPPORT_SET 2
719DEFINE_GUID(
IID_IKsControl, 28F54685, 0x06FD, 0x11D2, 0xB2, 0x7A, 0x00, 0A0, 0xC9, 0x22, 0x31, 0x96);
724#define INTERFACE IKsControl
756DEFINE_GUID(
IID_IKsAggregateControl, 0x7F40EAC0, 0x3947, 0x11D2, 0x87, 0x4E, 0x00, 0A0, 0xC9, 0x22, 0x31, 0x96);
759#define INTERFACE IKsAggregateControl
775DEFINE_GUID(
IID_IKsTopology, 0x28F54683, 0x06FD, 0x11D2, 0xB2, 0x7A, 0x00, 0A0, 0xC9, 0x22, 0x31, 0x96);
778#define INTERFACE IKsTopology
const GUID IID_IKsAllocatorEx
const GUID IID_IKsAllocator
#define DECLARE_INTERFACE_(i, b)
_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
const GUID IID_IKsPropertySet
const GUID IID_IKsAggregateControl
const GUID IID_IKsControl
#define DEFINE_GUIDEX(name)
IN PDCB IN VBO IN ULONG IN BOOLEAN Pin
_In_ WDFDEVICE _In_ PWDF_DEVICE_INTERFACE_PROPERTY_DATA PropertyData
_Inout_ PUSB_DEVICE_HANDLE DeviceHandle
#define DEFINE_GUIDSTRUCT(guid, name)
_In_ PKSALLOCATOR_FRAMING _Out_ PHANDLE AllocatorHandle
KSDDKAPI HRESULT WINAPI KsGetMultiplePinFactoryItems(HANDLE FilterHandle, ULONG PinFactoryId, ULONG PropertyId, PVOID *Items)
KSDDKAPI HRESULT WINAPI KsGetMediaTypeCount(HANDLE FilterHandle, ULONG PinFactoryId, ULONG *MediaTypeCount)
KSDDKAPI HRESULT WINAPI KsResolveRequiredAttributes(PKSDATARANGE DataRange, KSMULTIPLE_ITEM *Attributes OPTIONAL)
KSDDKAPI HRESULT WINAPI KsGetMediaType(int Position, AM_MEDIA_TYPE *AmMediaType, HANDLE FilterHandle, ULONG PinFactoryId)
KSDDKAPI HRESULT WINAPI KsSynchronousDeviceControl(HANDLE Handle, ULONG IoControl, PVOID InBuffer, ULONG InLength, PVOID OutBuffer, ULONG OutLength, PULONG BytesReturned)
KSDDKAPI HRESULT WINAPI KsOpenDefaultDevice(REFGUID Category, ACCESS_MASK Access, PHANDLE DeviceHandle)
#define STATIC_CLSID_Proxy
STDMETHOD() QuerySupported(THIS_ IN REFGUID PropSet, IN ULONG Id, OUT ULONG *TypeSupport) PURE
#define STATIC_IID_IKsPropertySet
static PLARGE_INTEGER Time
static LPINTERNAL_BSTR Get(const BSTR lpszString)
const GUID IID_IKsTopology
const GUID IID_IKsClockPropertySet
#define DEFINE_GUID(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8)
_In_ UCHAR _In_ ULONG _Out_ PUCHAR _Outptr_result_bytebuffer_ OutBufferLength PVOID * OutBuffer
PULONG MinorVersion OPTIONAL
_In_ PUSBD_INTERFACE_LIST_ENTRY InterfaceList
_Must_inspect_result_ _In_ WDFDMAENABLER _In_ _In_opt_ PWDF_OBJECT_ATTRIBUTES Attributes
_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_ 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_ ULONG Flags
_In_opt_ PUNICODE_STRING _In_ PDRIVER_OBJECT _In_ PDEVICE_OBJECT _In_ INTERFACE_TYPE BusType