ReactOS 0.4.17-dev-1321-g5c122a9
ksproxy.h
Go to the documentation of this file.
1#ifndef __KSPROXY__
2#define __KSPROXY__
3
4#ifdef __cplusplus
5extern "C" {
6#endif
7
8#undef KSDDKAPI
9#ifdef _KSDDK_
10#define KSDDKAPI
11#else
12#define KSDDKAPI DECLSPEC_IMPORT
13#endif
14
15#define STATIC_IID_IKsObject\
16 0x423c13a2L, 0x2070, 0x11d0, {0x9e, 0xf7, 0x00, 0xaa, 0x00, 0xa2, 0x16, 0xa1}
17
18#define STATIC_IID_IKsPinEx\
19 0x7bb38260L, 0xd19c, 0x11d2, {0xb3, 0x8a, 0x00, 0xa0, 0xc9, 0x5e, 0xc2, 0x2e}
20
21#define STATIC_IID_IKsPin\
22 0xb61178d1L, 0xa2d9, 0x11cf, {0x9e, 0x53, 0x00, 0xaa, 0x00, 0xa2, 0x16, 0xa1}
23
24#define STATIC_IID_IKsPinPipe\
25 0xe539cd90L, 0xa8b4, 0x11d1, {0x81, 0x89, 0x00, 0xa0, 0xc9, 0x06, 0x28, 0x02}
26
27#define STATIC_IID_IKsDataTypeHandler\
28 0x5ffbaa02L, 0x49a3, 0x11d0, {0x9f, 0x36, 0x00, 0xaa, 0x00, 0xa2, 0x16, 0xa1}
29
30#define STATIC_IID_IKsDataTypeCompletion\
31 0x827D1A0EL, 0x0F73, 0x11D2, {0xB2, 0x7A, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96}
32
33#define STATIC_IID_IKsInterfaceHandler\
34 0xD3ABC7E0L, 0x9A61, 0x11D0, {0xA4, 0x0D, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96}
35
36#define STATIC_IID_IKsClockPropertySet\
37 0x5C5CBD84L, 0xE755, 0x11D0, {0xAC, 0x18, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96}
38
39#define STATIC_IID_IKsAllocator\
40 0x8da64899L, 0xc0d9, 0x11d0, {0x84, 0x13, 0x00, 0x00, 0xf8, 0x22, 0xfe, 0x8a}
41
42#define STATIC_IID_IKsAllocatorEx\
43 0x091bb63aL, 0x603f, 0x11d1, {0xb0, 0x67, 0x00, 0xa0, 0xc9, 0x06, 0x28, 0x02}
44
45
46#ifndef STATIC_IID_IKsPropertySet
47#define STATIC_IID_IKsPropertySet\
48 0x31EFAC30L, 0x515C, 0x11d0, {0xA9, 0xAA, 0x00, 0xAA, 0x00, 0x61, 0xBE, 0x93}
49#endif
50
51#define STATIC_IID_IKsTopology\
52 0x28F54683L, 0x06FD, 0x11D2, {0xB2, 0x7A, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96}
53
54#ifndef STATIC_IID_IKsControl
55#define STATIC_IID_IKsControl\
56 0x28F54685L, 0x06FD, 0x11D2, {0xB2, 0x7A, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96}
57#endif
58
59#define STATIC_IID_IKsAggregateControl\
60 0x7F40EAC0L, 0x3947, 0x11D2, {0x87, 0x4E, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96}
61
62#define STATIC_CLSID_Proxy \
63 0x17CCA71BL, 0xECD7, 0x11D0, {0xB9, 0x08, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96}
64
65#ifdef _KS_
66
67#if !defined(__cplusplus) || _MSC_VER < 1100
68
69#define IID_IKsQualityForwarder KSCATEGORY_QUALITY
70
72DEFINE_GUIDEX(IID_IKsPin);
75DEFINE_GUIDEX(IID_IKsDataTypeHandler);
76DEFINE_GUIDEX(IID_IKsDataTypeCompletion);
77DEFINE_GUIDEX(IID_IKsInterfaceHandler);
81#endif
82
83#define STATIC_IID_IKsQualityForwarder STATIC_KSCATEGORY_QUALITY
84
85typedef enum
86{
87 KsAllocatorMode_User,
88 KsAllocatorMode_Kernel
89}KSALLOCATORMODE;
90
91
92typedef enum
93{
94 FramingProp_Uninitialized,
95 FramingProp_None,
96 FramingProp_Old,
97 FramingProp_Ex
98}FRAMING_PROP;
99
100typedef FRAMING_PROP *PFRAMING_PROP;
101
102
103typedef enum
104{
105 Framing_Cache_Update,
106 Framing_Cache_ReadLast,
107 Framing_Cache_ReadOrig,
108 Framing_Cache_Write
109}FRAMING_CACHE_OPS;
110
111
112typedef struct
113{
114 LONGLONG MinTotalNominator;
115 LONGLONG MaxTotalNominator;
116 LONGLONG TotalDenominator;
117}OPTIMAL_WEIGHT_TOTALS;
118
119typedef struct IPin IPin;
120typedef struct IKsPin IKsPin;
121typedef struct IKsAllocator IKsAllocator;
122typedef struct IKsAllocatorEx IKsAllocatorEx;
123
124
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
130
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
144
145typedef enum
146{
147 PipeState_DontCare,
148 PipeState_RangeNotFixed,
149 PipeState_RangeFixed,
150 PipeState_CompressionUnknown,
151 PipeState_Finalized
152}PIPE_STATE;
153
154
155typedef struct _PIPE_DIMENSIONS
156{
157 KS_COMPRESSION AllocatorPin;
158 KS_COMPRESSION MaxExpansionPin;
159 KS_COMPRESSION EndPin;
160}PIPE_DIMENSIONS, *PPIPE_DIMENSIONS;
161
162
163typedef enum
164{
165 Pipe_Allocator_None,
166 Pipe_Allocator_FirstPin,
167 Pipe_Allocator_LastPin,
168 Pipe_Allocator_MiddlePin
169}PIPE_ALLOCATOR_PLACE, *PPIPE_ALLOCATOR_PLACE;
170
171typedef enum
172{
173 KS_MemoryTypeDontCare = 0,
174 KS_MemoryTypeKernelPaged,
175 KS_MemoryTypeKernelNonPaged,
176 KS_MemoryTypeDeviceHostMapped,
177 KS_MemoryTypeDeviceSpecific,
178 KS_MemoryTypeUser,
179 KS_MemoryTypeAnyHost
180}KS_LogicalMemoryType, *PKS_LogicalMemoryType;
181
182typedef struct _PIPE_TERMINATION {
183 ULONG Flags;
184 ULONG OutsideFactors;
185 ULONG Weigth;
186 KS_FRAMING_RANGE PhysicalRange;
187 KS_FRAMING_RANGE_WEIGHTED OptimalRange;
188 KS_COMPRESSION Compression;
189}PIPE_TERMINATION;
190
191
192typedef struct _ALLOCATOR_PROPERTIES_EX
193{
194 long cBuffers;
195 long cbBuffer;
196 long cbAlign;
197 long cbPrefix;
198
199 GUID MemoryType;
201 PIPE_STATE State;
202 PIPE_TERMINATION Input;
203 PIPE_TERMINATION Output;
204 ULONG Strategy;
205 ULONG Flags;
206 ULONG Weight;
207 KS_LogicalMemoryType LogicalMemoryType;
208 PIPE_ALLOCATOR_PLACE AllocatorPlace;
209 PIPE_DIMENSIONS Dimensions;
210 KS_FRAMING_RANGE PhysicalRange;
211 IKsAllocatorEx* PrevSegment;
212 ULONG CountNextSegments;
213 IKsAllocatorEx** NextSegments;
214 ULONG InsideFactors;
215 ULONG NumberPins;
216}ALLOCATOR_PROPERTIES_EX;
217
218typedef ALLOCATOR_PROPERTIES_EX *PALLOCATOR_PROPERTIES_EX;
219
220
221#ifdef __STREAMS__
222
223struct DECLSPEC_UUID("5C5CBD84-E755-11D0-AC18-00A0C9223196") IKsClockPropertySet;
224#undef INTERFACE
225#define INTERFACE IKsClockPropertySet
226DECLARE_INTERFACE_(IKsClockPropertySet, IUnknown)
227{
228 STDMETHOD(KsGetTime)(
229 THIS_
231 ) PURE;
232 STDMETHOD(KsSetTime)(
233 THIS_
235 ) PURE;
236 STDMETHOD(KsGetPhysicalTime)(
237 THIS_
239 ) PURE;
240 STDMETHOD(KsSetPhysicalTime)(
241 THIS_
243 ) PURE;
244 STDMETHOD(KsGetCorrelatedTime)(
245 THIS_
246 KSCORRELATED_TIME* CorrelatedTime
247 ) PURE;
248 STDMETHOD(KsSetCorrelatedTime)(
249 THIS_
250 KSCORRELATED_TIME* CorrelatedTime
251 ) PURE;
252 STDMETHOD(KsGetCorrelatedPhysicalTime)(
253 THIS_
254 KSCORRELATED_TIME* CorrelatedTime
255 ) PURE;
256 STDMETHOD(KsSetCorrelatedPhysicalTime)(
257 THIS_
258 KSCORRELATED_TIME* CorrelatedTime
259 ) PURE;
260 STDMETHOD(KsGetResolution)(
261 THIS_
263 ) PURE;
264 STDMETHOD(KsGetState)(
265 THIS_
267 ) PURE;
268};
269
270
271interface DECLSPEC_UUID("8da64899-c0d9-11d0-8413-0000f822fe8a") IKsAllocator;
272#undef INTERFACE
273#define INTERFACE IKsAllocator
274DECLARE_INTERFACE_(IKsAllocator, IUnknown)
275{
276 STDMETHOD_(HANDLE, KsGetAllocatorHandle)(
277 THIS
278 ) PURE;
279 STDMETHOD_(KSALLOCATORMODE, KsGetAllocatorMode)(
280 THIS
281 ) PURE;
282 STDMETHOD(KsGetAllocatorStatus)(
283 THIS_
284 PKSSTREAMALLOCATOR_STATUS AllocatorStatus
285 ) PURE;
286 STDMETHOD_(VOID, KsSetAllocatorMode)(
287 THIS_
288 KSALLOCATORMODE Mode
289 ) PURE;
290};
291
292interface DECLSPEC_UUID("091bb63a-603f-11d1-b067-00a0c9062802") IKsAllocatorEx;
293#undef INTERFACE
294#define INTERFACE IKsAllocatorEx
295DECLARE_INTERFACE_(IKsAllocatorEx, IKsAllocator)
296{
297 STDMETHOD_(PALLOCATOR_PROPERTIES_EX, KsGetProperties)(
298 THIS
299 ) PURE;
300 STDMETHOD_(VOID, KsSetProperties)(
301 THIS_
302 PALLOCATOR_PROPERTIES_EX
303 ) PURE;
304 STDMETHOD_(VOID, KsSetAllocatorHandle)(
305 THIS_
307 ) PURE;
308 STDMETHOD_(HANDLE, KsCreateAllocatorAndGetHandle)(
309 THIS_
310 IKsPin* KsPin
311 ) PURE;
312};
313
314typedef enum {
315 KsPeekOperation_PeekOnly,
316 KsPeekOperation_AddRef
317} KSPEEKOPERATION;
318
319typedef struct _KSSTREAM_SEGMENT *PKSSTREAM_SEGMENT;
320
321interface DECLSPEC_UUID("b61178d1-a2d9-11cf-9e53-00aa00a216a1") IKsPin;
322
323#undef INTERFACE
324#define INTERFACE IKsPin
326{
327 STDMETHOD(KsQueryMediums)(
328 THIS_
329 PKSMULTIPLE_ITEM* MediumList
330 ) PURE;
331 STDMETHOD(KsQueryInterfaces)(
332 THIS_
334 ) PURE;
335 STDMETHOD(KsCreateSinkPinHandle)(
336 THIS_
338 KSPIN_MEDIUM& Medium
339 ) PURE;
340 STDMETHOD(KsGetCurrentCommunication)(
341 THIS_
342 KSPIN_COMMUNICATION *Communication,
344 KSPIN_MEDIUM *Medium
345 ) PURE;
346 STDMETHOD(KsPropagateAcquire)(
347 THIS
348 ) PURE;
349 STDMETHOD(KsDeliver)(
350 THIS_
351 IMediaSample* Sample,
353 ) PURE;
354 STDMETHOD(KsMediaSamplesCompleted)(
355 THIS_
356 PKSSTREAM_SEGMENT StreamSegment
357 ) PURE;
358 STDMETHOD_(IMemAllocator *, KsPeekAllocator)(
359 THIS_
360 KSPEEKOPERATION Operation
361 ) PURE;
362 STDMETHOD(KsReceiveAllocator)(
363 THIS_
364 IMemAllocator *MemAllocator
365 ) PURE;
366 STDMETHOD(KsRenegotiateAllocator)(
367 THIS
368 ) PURE;
369 STDMETHOD_(LONG, KsIncrementPendingIoCount)(
370 THIS
371 ) PURE;
372 STDMETHOD_(LONG, KsDecrementPendingIoCount)(
373 THIS
374 ) PURE;
375 STDMETHOD(KsQualityNotify)(
376 THIS_
377 ULONG Proportion,
378 REFERENCE_TIME TimeDelta
379 ) PURE;
380};
381
382interface DECLSPEC_UUID("7bb38260-d19c-11d2-b38a-00a0c95ec22e") IKsPinEx;
383#undef INTERFACE
384#define INTERFACE IKsPinEx
385DECLARE_INTERFACE_(IKsPinEx, IKsPin)
386{
387 STDMETHOD_(VOID, KsNotifyError)(
388 THIS_
389 IMediaSample* Sample,
390 HRESULT hr
391 ) PURE;
392};
393
394interface DECLSPEC_UUID("e539cd90-a8b4-11d1-8189-00a0c9062802") IKsPinPipe;
395#undef INTERFACE
396#define INTERFACE IKsPinPipe
397DECLARE_INTERFACE_(IKsPinPipe, IUnknown)
398{
399 STDMETHOD(KsGetPinFramingCache)(
400 THIS_
401 PKSALLOCATOR_FRAMING_EX *FramingEx,
402 PFRAMING_PROP FramingProp,
403 FRAMING_CACHE_OPS Option
404 ) PURE;
405 STDMETHOD(KsSetPinFramingCache)(
406 THIS_
407 PKSALLOCATOR_FRAMING_EX FramingEx,
408 PFRAMING_PROP FramingProp,
409 FRAMING_CACHE_OPS Option
410 ) PURE;
411 STDMETHOD_(IPin*, KsGetConnectedPin)(
412 THIS
413 ) PURE;
414 STDMETHOD_(IKsAllocatorEx*, KsGetPipe)(
415 THIS_
416 KSPEEKOPERATION Operation
417 ) PURE;
418 STDMETHOD(KsSetPipe)(
419 THIS_
420 IKsAllocatorEx *KsAllocator
421 ) PURE;
422 STDMETHOD_(ULONG, KsGetPipeAllocatorFlag)(
423 THIS
424 ) PURE;
425 STDMETHOD(KsSetPipeAllocatorFlag)(
426 THIS_
427 ULONG Flag
428 ) PURE;
429 STDMETHOD_(GUID, KsGetPinBusCache)(
430 THIS
431 ) PURE;
432 STDMETHOD(KsSetPinBusCache)(
433 THIS_
434 GUID Bus
435 ) PURE;
436
437 STDMETHOD_(PWCHAR, KsGetPinName)(
438 THIS
439 ) PURE;
440 STDMETHOD_(PWCHAR, KsGetFilterName)(
441 THIS
442 ) PURE;
443};
444
445
446interface DECLSPEC_UUID("CD5EBE6B-8B6E-11D1-8AE0-00A0C9223196") IKsPinFactory;
447#undef INTERFACE
448#define INTERFACE IKsPinFactory
449DECLARE_INTERFACE_(IKsPinFactory, IUnknown)
450{
451 STDMETHOD(KsPinFactory)(
452 THIS_
453 ULONG* PinFactory
454 ) PURE;
455};
456
457typedef enum {
458 KsIoOperation_Write,
459 KsIoOperation_Read
460} KSIOOPERATION;
461
462interface DECLSPEC_UUID("5ffbaa02-49a3-11d0-9f36-00aa00a216a1") IKsDataTypeHandler;
463#undef INTERFACE
464#define INTERFACE IKsDataTypeHandler
465DECLARE_INTERFACE_(IKsDataTypeHandler, IUnknown)
466{
467 STDMETHOD(KsCompleteIoOperation)(
468 THIS_
469 IMediaSample *Sample,
470 PVOID StreamHeader,
471 KSIOOPERATION IoOperation,
472 BOOL Cancelled
473 ) PURE;
474 STDMETHOD(KsIsMediaTypeInRanges)(
475 THIS_
476 PVOID DataRanges
477 ) PURE;
478 STDMETHOD(KsPrepareIoOperation)(
479 THIS_
480 IMediaSample *Sample,
481 PVOID StreamHeader,
482 KSIOOPERATION IoOperation
483 ) PURE;
484 STDMETHOD(KsQueryExtendedSize)(
485 THIS_
486 ULONG* ExtendedSize
487 ) PURE;
488 STDMETHOD(KsSetMediaType)(
489 THIS_
490 const AM_MEDIA_TYPE* AmMediaType
491 ) PURE;
492};
493
494interface DECLSPEC_UUID("827D1A0E-0F73-11D2-B27A-00A0C9223196") IKsDataTypeCompletion;
495#undef INTERFACE
496#define INTERFACE IKsDataTypeCompletion
497DECLARE_INTERFACE_(IKsDataTypeCompletion, IUnknown)
498{
499 STDMETHOD(KsCompleteMediaType)(
500 THIS_
501 HANDLE FilterHandle,
502 ULONG PinFactoryId,
503 AM_MEDIA_TYPE* AmMediaType
504 ) PURE;
505};
506
507interface DECLSPEC_UUID("D3ABC7E0-9A61-11d0-A40D-00A0C9223196") IKsInterfaceHandler;
508#undef INTERFACE
509#define INTERFACE IKsInterfaceHandler
510DECLARE_INTERFACE_(IKsInterfaceHandler, IUnknown)
511{
512 STDMETHOD(KsSetPin)(
513 THIS_
514 IKsPin *KsPin
515 ) PURE;
516 STDMETHOD(KsProcessMediaSamples)(
517 THIS_
518 IKsDataTypeHandler *KsDataTypeHandler,
519 IMediaSample** SampleList,
520 PLONG SampleCount,
521 KSIOOPERATION IoOperation,
522 PKSSTREAM_SEGMENT *StreamSegment
523 ) PURE;
524 STDMETHOD(KsCompleteIo)(
525 THIS_
526 PKSSTREAM_SEGMENT StreamSegment
527 ) PURE;
528};
529
530
531typedef struct _KSSTREAM_SEGMENT
532{
533 IKsInterfaceHandler *KsInterfaceHandler;
534 IKsDataTypeHandler *KsDataTypeHandler;
535 KSIOOPERATION IoOperation;
536 HANDLE CompletionEvent;
537
538}KSSTREAM_SEGMENT;
539
540interface DECLSPEC_UUID("423c13a2-2070-11d0-9ef7-00aa00a216a1") IKsObject;
541#undef INTERFACE
542#define INTERFACE IKsObject
544{
545 STDMETHOD_(HANDLE, KsGetObjectHandle)(
546 THIS
547 ) PURE;
548};
549
550interface DECLSPEC_UUID("97ebaacb-95bd-11d0-a3ea-00a0c9223196") IKsQualityForwarder;
551#undef INTERFACE
552#define INTERFACE IKsQualityForwarder
553DECLARE_INTERFACE_(IKsQualityForwarder, IKsObject)
554{
555 STDMETHOD_(VOID, KsFlushClient)(
556 THIS_
557 IKsPin* Pin
558 ) PURE;
559};
560
561#if ( (NTDDI_VERSION >= NTDDI_WINXPSP2) && (NTDDI_VERSION < NTDDI_WS03) ) || (NTDDI_VERSION >= NTDDI_WS03SP1)
562
563interface DECLSPEC_UUID("412bd695-f84b-46c1-ac73-54196dbc8fa7") IKsNotifyEvent;
564#undef INTERFACE
565#define INTERFACE IKsNotifyEvent
566DECLARE_INTERFACE_(IKsNotifyEvent, IUnknown)
567{
568 STDMETHOD(KsNotifyEvent)(
569 THIS_
570 ULONG Event,
571 ULONG_PTR lParam1,
572 ULONG_PTR lParam2
573 ) PURE;
574};
575
576#endif
577
580WINAPI
582 PKSDATARANGE DataRange,
584
587WINAPI
589 REFGUID Category,
592
595WINAPI
598 ULONG IoControl,
599 PVOID InBuffer,
600 ULONG InLength,
602 ULONG OutLength,
604
607WINAPI
609 HANDLE FilterHandle,
610 ULONG PinFactoryId,
612 PVOID* Items);
613
616WINAPI
618 HANDLE FilterHandle,
619 ULONG PinFactoryId,
620 ULONG* MediaTypeCount);
621
624WINAPI
626 int Position,
627 AM_MEDIA_TYPE* AmMediaType,
628 HANDLE FilterHandle,
629 ULONG PinFactoryId);
630
631#endif
632
633#ifndef _IKsPropertySet_
634#if !defined(__cplusplus) || _MSC_VER < 1100
636#endif
637#endif
638
639#ifndef _IKsControl_
640#if !defined(__cplusplus) || _MSC_VER < 1100
642#endif
643#endif
644
645#if !defined(__cplusplus) || _MSC_VER < 1100
647#endif
648
649#ifndef _IKsTopology_
650#if !defined(__cplusplus) || _MSC_VER < 1100
652#endif
653#endif
654
655DEFINE_GUIDSTRUCT("17CCA71B-ECD7-11D0-B908-00A0C9223196", CLSID_Proxy);
656#define CLSID_Proxy DEFINE_GUIDNAMED(CLSID_Proxy)
657
658#else
659
660#ifndef _IKsPropertySet_
661#if !defined(__cplusplus) || _MSC_VER < 1100
663#endif
664#endif
665
666#if !defined(__cplusplus) || _MSC_VER < 1100
668#else
669DECLSPEC_UUID("17CCA71B-ECD7-11D0-B908-00A0C9223196") CLSID_Proxy;
670#endif
671
672#endif
673
674#ifndef _IKsPropertySet_
675#define _IKsPropertySet_
676
677#define KSPROPERTY_SUPPORT_GET 1
678#define KSPROPERTY_SUPPORT_SET 2
679
680interface DECLSPEC_UUID("31EFAC30-515C-11d0-A9AA-00aa0061be93")
681#undef INTERFACE
684{
685 STDMETHOD(Set)(
686 THIS_
687 IN REFGUID PropSet,
688 IN ULONG Id,
689 IN LPVOID InstanceData,
690 IN ULONG InstanceLength,
693 ) PURE;
694
696 THIS_
697 IN REFGUID PropSet,
698 IN ULONG Id,
699 IN LPVOID InstanceData,
700 IN ULONG InstanceLength,
704 ) PURE;
705
707 THIS_
708 IN REFGUID PropSet,
709 IN ULONG Id,
710 OUT ULONG* TypeSupport
711 ) PURE;
712};
713
714#endif
715
716#ifndef _IKsControl_
717#define _IKsControl_
718
719DEFINE_GUID(IID_IKsControl, 28F54685, 0x06FD, 0x11D2, 0xB2, 0x7A, 0x00, 0A0, 0xC9, 0x22, 0x31, 0x96);
720
721
722interface DECLSPEC_UUID("28F54685-06FD-11D2-B27A-00A0C9223196") IKsControl;
723#undef INTERFACE
724#define INTERFACE IKsControl
726{
727 STDMETHOD(KsProperty)(
728 THIS_
730 IN ULONG PropertyLength,
734 ) PURE;
735 STDMETHOD(KsMethod)(
736 THIS_
738 IN ULONG MethodLength,
739 IN OUT LPVOID MethodData,
742 ) PURE;
743 STDMETHOD(KsEvent)(
744 THIS_
746 IN ULONG EventLength,
750 ) PURE;
751};
752
753#endif
754
755
756DEFINE_GUID(IID_IKsAggregateControl, 0x7F40EAC0, 0x3947, 0x11D2, 0x87, 0x4E, 0x00, 0A0, 0xC9, 0x22, 0x31, 0x96);
757
758#undef INTERFACE
759#define INTERFACE IKsAggregateControl
760DECLARE_INTERFACE_(IKsAggregateControl, IUnknown)
761{
762 STDMETHOD(KsAddAggregate)(
763 THIS_
764 IN REFGUID AggregateClass
765 ) PURE;
766 STDMETHOD(KsRemoveAggregate)(
767 THIS_
768 IN REFGUID AggregateClass
769 ) PURE;
770};
771
772#ifndef _IKsTopology_
773#define _IKsTopology_
774
775DEFINE_GUID(IID_IKsTopology, 0x28F54683, 0x06FD, 0x11D2, 0xB2, 0x7A, 0x00, 0A0, 0xC9, 0x22, 0x31, 0x96);
776
777#undef INTERFACE
778#define INTERFACE IKsTopology
780{
781 STDMETHOD(CreateNodeInstance)(
782 THIS_
783 IN ULONG NodeId,
784 IN ULONG Flags,
786 IN IUnknown* UnkOuter OPTIONAL,
787 IN REFGUID InterfaceId,
789 ) PURE;
790};
791
792#endif
793
794#ifdef __cplusplus
795}
796#endif
797
798#endif
DWORD Id
const GUID IID_IKsAllocatorEx
Definition: allocator.cpp:11
const GUID IID_IKsAllocator
Definition: allocator.cpp:12
#define DECLARE_INTERFACE_(i, b)
Definition: basetyps.h:78
#define PURE
Definition: basetyps.h:64
#define THIS_
Definition: basetyps.h:65
#define THIS
Definition: basetyps.h:66
#define STDMETHOD_(t, m)
Definition: basetyps.h:63
#define STDMETHOD(m)
Definition: basetyps.h:62
_In_ PSTORAGE_PROPERTY_ID PropertyId
Definition: cdrom.h:932
const GUID IID_IKsPropertySet
Definition: controlnode.cpp:13
HRESULT hr
Definition: delayimp.cpp:582
const GUID IID_IKsObject
_In_ ULONG Attributes
Definition: dispmprt.h:1077
_In_ PVOID _In_ ULONG _In_ ULONG _Out_ ULONG * BytesReturned
Definition: dispmprt.h:673
_Check_return_ _In_ DXGK_EVENT_TYPE _In_ ULONG Event
Definition: dispmprt.h:1287
_In_ D3DDDI_VIDEO_PRESENT_TARGET_ID _In_ ULONG _In_ ULONG DataLength
Definition: dispmprt.h:233
_In_ D3DDDI_VIDEO_PRESENT_TARGET_ID _In_ ULONG _In_ ULONG Flags
Definition: dispmprt.h:245
const GUID IID_IKsAggregateControl
Definition: proxy.cpp:16
LONGLONG REFERENCE_TIME
Definition: dmusicks.h:9
const GUID IID_IKsControl
Definition: filter.c:44
#define DEFINE_GUIDEX(name)
Definition: dmksctrl.h:28
_In_ ACCESS_MASK Access
Definition: entry.cpp:45
IN PDCB IN VBO IN ULONG IN BOOLEAN Pin
Definition: fatprocs.h:428
unsigned int BOOL
Definition: ntddk_ex.h:94
FP_OP Operation
Definition: fpcontrol.c:150
_In_ WDFDEVICE _In_ PWDF_DEVICE_INTERFACE_PROPERTY_DATA PropertyData
ULONG Handle
Definition: gdb_input.c:15
_In_ ULONG Mode
Definition: hubbusif.h:303
_In_ const GUID _In_ ULONG _In_opt_ PFN_WDF_WMI_INSTANCE_QUERY_INSTANCE _In_opt_ PFN_WDF_WMI_INSTANCE_EXECUTE_METHOD Method
Definition: hubwmi.cpp:115
const GUID IID_IKsPinEx
Definition: input_pin.cpp:12
const GUID IID_IKsPinPipe
Definition: input_pin.cpp:11
Definition: axcore.idl:92
KSSTATE
Definition: ks.h:1214
KSPIN_COMMUNICATION
Definition: ks.h:1253
#define DEFINE_GUIDSTRUCT(guid, name)
Definition: ks.h:98
_In_ PKSALLOCATOR_FRAMING _Out_ PHANDLE AllocatorHandle
Definition: ks.h:4519
KSDDKAPI HRESULT WINAPI KsGetMultiplePinFactoryItems(HANDLE FilterHandle, ULONG PinFactoryId, ULONG PropertyId, PVOID *Items)
Definition: ksproxy.cpp:154
KSDDKAPI HRESULT WINAPI KsGetMediaTypeCount(HANDLE FilterHandle, ULONG PinFactoryId, ULONG *MediaTypeCount)
Definition: ksproxy.cpp:216
KSDDKAPI HRESULT WINAPI KsResolveRequiredAttributes(PKSDATARANGE DataRange, KSMULTIPLE_ITEM *Attributes OPTIONAL)
Definition: ksproxy.cpp:90
KSDDKAPI HRESULT WINAPI KsGetMediaType(int Position, AM_MEDIA_TYPE *AmMediaType, HANDLE FilterHandle, ULONG PinFactoryId)
Definition: ksproxy.cpp:250
KSDDKAPI HRESULT WINAPI KsSynchronousDeviceControl(HANDLE Handle, ULONG IoControl, PVOID InBuffer, ULONG InLength, PVOID OutBuffer, ULONG OutLength, PULONG BytesReturned)
Definition: ksproxy.cpp:34
KSDDKAPI HRESULT WINAPI KsOpenDefaultDevice(REFGUID Category, ACCESS_MASK Access, PHANDLE DeviceHandle)
Definition: ksproxy.cpp:101
#define STATIC_CLSID_Proxy
Definition: ksproxy.h:62
#define KSDDKAPI
Definition: ksproxy.h:12
STDMETHOD() QuerySupported(THIS_ IN REFGUID PropSet, IN ULONG Id, OUT ULONG *TypeSupport) PURE
#define STATIC_IID_IKsPropertySet
Definition: ksproxy.h:47
static PLARGE_INTEGER Time
Definition: time.c:37
static LPINTERNAL_BSTR Get(const BSTR lpszString)
Definition: vartype.c:5043
_In_ PIOMMU_DEVICE_PATH _In_ PIOMMU_SVM_CAPABILITIES _Out_ PVOID * DeviceHandle
Definition: haltypes.h:1894
ULONG ACCESS_MASK
Definition: nt_native.h:40
PVOID *typedef PHANDLE
Definition: ntsecpkg.h:455
static BOOL Set
Definition: pageheap.c:10
long LONG
Definition: pedump.c:60
_In_ ULONG _In_ WDFMEMORY Input
Definition: portacpi.cpp:109
const GUID IID_IKsTopology
Definition: proxy.cpp:18
const GUID IID_IKsClockPropertySet
Definition: proxy.cpp:17
#define DEFINE_GUID(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8)
Definition: guiddef.h:68
#define DECLSPEC_UUID(x)
Definition: rpcndr.h:144
SIZE_T cbBuffer
Definition: sc_lib_mldsa.h:405
_In_ UCHAR _In_ ULONG _Out_ PUCHAR _Outptr_result_bytebuffer_ OutBufferLength PVOID * OutBuffer
Definition: scsi.h:4117
PULONG MinorVersion OPTIONAL
Definition: CrossNt.h:68
Definition: xml2sdb.h:103
Definition: scsiwmi.h:51
Definition: wpp.c:50
static BYTE Resolution
Definition: mouse.c:35
static COORD Position
Definition: mouse.c:34
UINT32 cbPrefix
#define OPTIONAL
Definition: typedefs.h:41
uint32_t * PULONG
Definition: typedefs.h:59
int64_t LONGLONG
Definition: typedefs.h:68
uint32_t ULONG_PTR
Definition: typedefs.h:65
#define IN
Definition: typedefs.h:39
int32_t * PLONG
Definition: typedefs.h:58
uint16_t * PWCHAR
Definition: typedefs.h:56
uint32_t ULONG
Definition: typedefs.h:59
#define OUT
Definition: typedefs.h:40
_In_ UCXUSBDEVICE _In_ ULONG Interface
Definition: ucxusbdevice.h:428
_In_ PUSBD_INTERFACE_LIST_ENTRY InterfaceList
Definition: usbdlib.h:208
PUSB_ROOT_HUB_NAME Output
Definition: userreq.cpp:699
_Must_inspect_result_ _In_ WDFDEVICE _In_ ULONG _In_ ACCESS_MASK DesiredAccess
Definition: wdfdevice.h:2664
#define WINAPI
Definition: msvc.h:6
_In_opt_ PUNICODE_STRING _In_ PDRIVER_OBJECT _In_ PDEVICE_OBJECT _In_ INTERFACE_TYPE BusType
Definition: halfuncs.h:159