ReactOS  0.4.14-dev-77-gd9e7c48
interfaces.hpp
Go to the documentation of this file.
1 #ifndef INTERFACES_H__
2 #define INTERFACES_H__
3 
4 DEFINE_GUID(IID_IIrpTarget, 0xB4C90A60, 0x5791, 0x11D0, 0xF9, 0x86, 0x00, 0xA0, 0xC9, 0x11, 0xB5, 0x44);
5 DEFINE_GUID(IID_ISubdevice, 0xB4C90A61, 0x5791, 0x11D0, 0xF9, 0x86, 0x00, 0xA0, 0xC9, 0x11, 0xB5, 0x44);
6 DEFINE_GUID(IID_IIrpTargetFactory, 0xB4C90A62, 0x5791, 0x11D0, 0xF9, 0x86, 0x00, 0xA0, 0xC9, 0x11, 0xB5, 0x44);
7 
8 
9 /*****************************************************************************
10  * IIrpTarget
11  *****************************************************************************
12  */
13 
14 #define IMP_IIrpTarget \
15  STDMETHODIMP_(NTSTATUS) NewIrpTarget(THIS_ \
16  OUT struct IIrpTarget **OutTarget, \
17  IN PCWSTR Name, \
18  IN PUNKNOWN Unknown, \
19  IN POOL_TYPE PoolType, \
20  IN PDEVICE_OBJECT DeviceObject, \
21  IN PIRP Irp, \
22  IN KSOBJECT_CREATE *CreateObject); \
23  \
24  STDMETHODIMP_(NTSTATUS) DeviceIoControl(THIS_ \
25  IN PDEVICE_OBJECT DeviceObject, \
26  IN PIRP Irp); \
27  \
28  STDMETHODIMP_(NTSTATUS) Read(THIS_ \
29  IN PDEVICE_OBJECT DeviceObject, \
30  IN PIRP Irp); \
31  \
32  STDMETHODIMP_(NTSTATUS) Write(THIS_ \
33  IN PDEVICE_OBJECT DeviceObject, \
34  IN PIRP Irp); \
35  \
36  STDMETHODIMP_(NTSTATUS) Flush(THIS_ \
37  IN PDEVICE_OBJECT DeviceObject, \
38  IN PIRP Irp); \
39  \
40  STDMETHODIMP_(NTSTATUS) Close(THIS_ \
41  IN PDEVICE_OBJECT DeviceObject, \
42  IN PIRP Irp); \
43  \
44  STDMETHODIMP_(NTSTATUS) QuerySecurity(THIS_ \
45  IN PDEVICE_OBJECT DeviceObject, \
46  IN PIRP Irp); \
47  \
48  STDMETHODIMP_(NTSTATUS) SetSecurity(THIS_ \
49  IN PDEVICE_OBJECT DeviceObject, \
50  IN PIRP Irp); \
51  \
52  STDMETHODIMP_(BOOLEAN) FastDeviceIoControl(THIS_ \
53  IN PFILE_OBJECT FileObject, \
54  IN BOOLEAN Wait, \
55  IN PVOID InputBuffer, \
56  IN ULONG InputBufferLength, \
57  OUT PVOID OutputBuffer, \
58  IN ULONG OutputBufferLength, \
59  IN ULONG IoControlCode, \
60  OUT PIO_STATUS_BLOCK StatusBlock, \
61  IN PDEVICE_OBJECT DeviceObject); \
62  \
63  STDMETHODIMP_(BOOLEAN) FastRead(THIS_ \
64  IN PFILE_OBJECT FileObject, \
65  IN PLARGE_INTEGER FileOffset, \
66  IN ULONG Length, \
67  IN BOOLEAN Wait, \
68  IN ULONG LockKey, \
69  IN PVOID Buffer, \
70  OUT PIO_STATUS_BLOCK StatusBlock, \
71  IN PDEVICE_OBJECT DeviceObject); \
72  \
73  STDMETHODIMP_(BOOLEAN) FastWrite(THIS_ \
74  IN PFILE_OBJECT FileObject, \
75  IN PLARGE_INTEGER FileOffset, \
76  IN ULONG Length, \
77  IN BOOLEAN Wait, \
78  IN ULONG LockKey, \
79  IN PVOID Buffer, \
80  OUT PIO_STATUS_BLOCK StatusBlock, \
81  IN PDEVICE_OBJECT DeviceObject)
82 
83 #define DEFINE_ABSTRACT_IRPTARGET() \
84  STDMETHOD_(NTSTATUS, NewIrpTarget)(THIS_ \
85  OUT struct IIrpTarget **OutTarget, \
86  IN PCWSTR Name, \
87  IN PUNKNOWN Unknown, \
88  IN POOL_TYPE PoolType, \
89  IN PDEVICE_OBJECT DeviceObject, \
90  IN PIRP Irp, \
91  IN KSOBJECT_CREATE *CreateObject) PURE; \
92  \
93  STDMETHOD_(NTSTATUS, DeviceIoControl)(THIS_ \
94  IN PDEVICE_OBJECT DeviceObject, \
95  IN PIRP Irp)PURE; \
96  \
97  STDMETHOD_(NTSTATUS, Read)(THIS_ \
98  IN PDEVICE_OBJECT DeviceObject, \
99  IN PIRP Irp)PURE; \
100  \
101  STDMETHOD_(NTSTATUS, Write)(THIS_ \
102  IN PDEVICE_OBJECT DeviceObject, \
103  IN PIRP Irp)PURE; \
104  \
105  STDMETHOD_(NTSTATUS, Flush)(THIS_ \
106  IN PDEVICE_OBJECT DeviceObject, \
107  IN PIRP Irp)PURE; \
108  \
109  STDMETHOD_(NTSTATUS, Close)( \
110  IN PDEVICE_OBJECT DeviceObject, \
111  IN PIRP Irp)PURE; \
112  \
113  STDMETHOD_(NTSTATUS, QuerySecurity)(THIS_ \
114  IN PDEVICE_OBJECT DeviceObject, \
115  IN PIRP Irp)PURE; \
116  \
117  STDMETHOD_(NTSTATUS, SetSecurity)(THIS_ \
118  IN PDEVICE_OBJECT DeviceObject, \
119  IN PIRP Irp)PURE; \
120  \
121  STDMETHOD_(BOOLEAN, FastDeviceIoControl)(THIS_ \
122  IN PFILE_OBJECT FileObject, \
123  IN BOOLEAN Wait, \
124  IN PVOID InputBuffer, \
125  IN ULONG InputBufferLength, \
126  OUT PVOID OutputBuffer, \
127  IN ULONG OutputBufferLength, \
128  IN ULONG IoControlCode, \
129  OUT PIO_STATUS_BLOCK StatusBlock, \
130  IN PDEVICE_OBJECT DeviceObject)PURE; \
131  \
132  STDMETHOD_(BOOLEAN, FastRead)(THIS_ \
133  IN PFILE_OBJECT FileObject, \
134  IN PLARGE_INTEGER FileOffset, \
135  IN ULONG Length, \
136  IN BOOLEAN Wait, \
137  IN ULONG LockKey, \
138  IN PVOID Buffer, \
139  OUT PIO_STATUS_BLOCK StatusBlock, \
140  IN PDEVICE_OBJECT DeviceObject)PURE; \
141  \
142  STDMETHOD_(BOOLEAN, FastWrite)(THIS_ \
143  IN PFILE_OBJECT FileObject, \
144  IN PLARGE_INTEGER FileOffset, \
145  IN ULONG Length, \
146  IN BOOLEAN Wait, \
147  IN ULONG LockKey, \
148  IN PVOID Buffer, \
149  OUT PIO_STATUS_BLOCK StatusBlock, \
150  IN PDEVICE_OBJECT DeviceObject)PURE;
151 
152 
153 
154 #undef INTERFACE
155 #define INTERFACE IIrpTarget
156 
158 {
160 
162 };
163 
164 typedef IIrpTarget *PIRPTARGET;
165 
166 /*****************************************************************************
167  * ISubdevice
168  *****************************************************************************
169  */
170 
171 struct IIrpTargetFactory;
172 
173 typedef struct
174 {
178 
179 typedef struct
180 {
185 
186 typedef struct
187 {
192 
194 
195 
196 typedef struct
197 {
200  KSPIN_DESCRIPTOR * KsPinDescriptor;
203 
204 typedef struct
205 {
210  PKSPROPERTY_SET FilterPropertySet;
211 
213  PKSEVENT_SET EventSet;
216 
226 
227 #undef INTERFACE
228 #define INTERFACE ISubdevice
229 
230 #define DEFINE_ABSTRACT_ISUBDEVICE() \
231  STDMETHOD_(NTSTATUS, NewIrpTarget)(THIS_ \
232  OUT IIrpTarget **OutTarget, \
233  IN PCWSTR Name, \
234  IN PUNKNOWN Unknown, \
235  IN POOL_TYPE PoolType, \
236  IN PDEVICE_OBJECT DeviceObject, \
237  IN PIRP Irp, \
238  IN KSOBJECT_CREATE *CreateObject) PURE; \
239  \
240  STDMETHOD_(NTSTATUS, ReleaseChildren)(THIS) PURE; \
241  \
242  STDMETHOD_(NTSTATUS, GetDescriptor)(THIS_ \
243  IN SUBDEVICE_DESCRIPTOR **) PURE; \
244  \
245  STDMETHOD_(NTSTATUS, DataRangeIntersection)(THIS_ \
246  IN ULONG PinId, \
247  IN PKSDATARANGE DataRange, \
248  IN PKSDATARANGE MatchingDataRange, \
249  IN ULONG OutputBufferLength, \
250  OUT PVOID ResultantFormat OPTIONAL, \
251  OUT PULONG ResultantFormatLength) PURE; \
252  \
253  STDMETHOD_(NTSTATUS, PowerChangeNotify)(THIS_ \
254  IN POWER_STATE PowerState) PURE; \
255  \
256  STDMETHOD_(NTSTATUS, PinCount)(THIS_ \
257  IN ULONG PinId, \
258  IN OUT PULONG FilterNecessary, \
259  IN OUT PULONG FilterCurrent, \
260  IN OUT PULONG FilterPossible, \
261  IN OUT PULONG GlobalCurrent, \
262  IN OUT PULONG GlobalPossible)PURE;
263 
264 
265 
266 #define IMP_ISubdevice \
267  STDMETHODIMP_(NTSTATUS) NewIrpTarget( \
268  OUT IIrpTarget **OutTarget, \
269  IN PCWSTR Name, \
270  IN PUNKNOWN Unknown, \
271  IN POOL_TYPE PoolType, \
272  IN PDEVICE_OBJECT DeviceObject, \
273  IN PIRP Irp, \
274  IN KSOBJECT_CREATE *CreateObject); \
275  \
276  STDMETHODIMP_(NTSTATUS) ReleaseChildren(THIS); \
277  \
278  STDMETHODIMP_(NTSTATUS) GetDescriptor(THIS_ \
279  IN SUBDEVICE_DESCRIPTOR **); \
280  \
281  STDMETHODIMP_(NTSTATUS) DataRangeIntersection( \
282  IN ULONG PinId, \
283  IN PKSDATARANGE DataRange, \
284  IN PKSDATARANGE MatchingDataRange, \
285  IN ULONG OutputBufferLength, \
286  OUT PVOID ResultantFormat OPTIONAL, \
287  OUT PULONG ResultantFormatLength); \
288  \
289  STDMETHODIMP_(NTSTATUS) PowerChangeNotify( \
290  IN POWER_STATE PowerState); \
291  \
292  STDMETHODIMP_(NTSTATUS) PinCount( \
293  IN ULONG PinId, \
294  IN OUT PULONG FilterNecessary, \
295  IN OUT PULONG FilterCurrent, \
296  IN OUT PULONG FilterPossible, \
297  IN OUT PULONG GlobalCurrent, \
298  IN OUT PULONG GlobalPossible)
299 
300 
302 {
305 };
306 
307 typedef ISubdevice *PSUBDEVICE;
308 
309 /*****************************************************************************
310  * IIrpQueue
311  *****************************************************************************
312  */
313 
314 #undef INTERFACE
315 #define INTERFACE IIrpQueue
316 
318 {
320 
322  IN PKSPIN_CONNECT ConnectDetails,
323  IN PKSPIN_DESCRIPTOR Descriptor,
324  IN ULONG FrameSize,
326  IN ULONG TagSupportEnabled) PURE;
327 
328  STDMETHOD_(NTSTATUS, AddMapping)(THIS_
329  IN PIRP Irp,
330  OUT PULONG Data) PURE;
331 
332  STDMETHOD_(NTSTATUS, GetMapping)(THIS_
333  OUT PUCHAR * Buffer,
335 
336  STDMETHOD_(VOID, UpdateMapping)(THIS_
338 
339  STDMETHOD_(ULONG, NumData)(THIS) PURE;
340 
341  STDMETHOD_(BOOL, CancelBuffers)(THIS) PURE;
342 
343  STDMETHOD_(NTSTATUS, GetMappingWithTag)(THIS_
344  IN PVOID Tag,
348  OUT PULONG Flags) PURE;
349 
350  STDMETHOD_(NTSTATUS, ReleaseMappingWithTag)(THIS_
351  IN PVOID Tag) PURE;
352 
353  STDMETHOD_(BOOLEAN, HasLastMappingFailed)(THIS) PURE;
354  STDMETHOD_(ULONG, GetCurrentIrpOffset)(THIS) PURE;
355 
356  STDMETHOD_(BOOLEAN, GetAcquiredTagRange)(THIS_
357  IN PVOID * FirstTag,
358  IN PVOID * LastTag) PURE;
359 
360 };
361 
362 
363 #define IMP_IIrpQueue \
364  STDMETHODIMP_(NTSTATUS) Init(THIS_ \
365  IN PKSPIN_CONNECT ConnectDetails, \
366  IN PKSPIN_DESCRIPTOR Descriptor, \
367  IN ULONG FrameSize, \
368  IN ULONG Alignment, \
369  IN ULONG TagSupportEnabled); \
370  \
371  STDMETHODIMP_(NTSTATUS) AddMapping(THIS_ \
372  IN PIRP Irp, \
373  OUT PULONG Data); \
374  \
375  STDMETHODIMP_(NTSTATUS) GetMapping(THIS_ \
376  OUT PUCHAR * Buffer, \
377  OUT PULONG BufferSize); \
378  \
379  STDMETHODIMP_(VOID) UpdateMapping(THIS_ \
380  IN ULONG BytesWritten); \
381  \
382  STDMETHODIMP_(ULONG) NumData(THIS); \
383  \
384  STDMETHODIMP_(BOOL) CancelBuffers(THIS); \
385  \
386  STDMETHODIMP_(NTSTATUS) GetMappingWithTag(THIS_ \
387  IN PVOID Tag, \
388  OUT PPHYSICAL_ADDRESS PhysicalAddress, \
389  OUT PVOID *VirtualAddress, \
390  OUT PULONG ByteCount, \
391  OUT PULONG Flags); \
392  \
393  STDMETHODIMP_(NTSTATUS) ReleaseMappingWithTag( \
394  IN PVOID Tag); \
395  \
396  STDMETHODIMP_(BOOLEAN) HasLastMappingFailed(THIS); \
397  STDMETHODIMP_(ULONG) GetCurrentIrpOffset(THIS); \
398  STDMETHODIMP_(BOOLEAN) GetAcquiredTagRange(THIS_ \
399  IN PVOID * FirstTag, \
400  IN PVOID * LastTag);
401 
402 
403 
404 /*****************************************************************************
405  * IKsWorkSink
406  *****************************************************************************
407  */
408 #undef INTERFACE
409 #define INTERFACE IKsWorkSink
410 
412 {
414 
415  STDMETHOD_(NTSTATUS, Work)(THIS);
416 };
417 
418 /*****************************************************************************
419  * IIrpStreamNotify
420  *****************************************************************************
421  */
422 #undef INTERFACE
423 #define INTERFACE IIrpStreamNotify
424 
425 struct IRPSTREAMPOSITION;
426 
427 DECLARE_INTERFACE_(IIrpStreamNotify, IUnknown)
428 {
430 
431  STDMETHOD_(NTSTATUS, IrpSubmitted)(THIS_
432  IN PIRP Irp,
434 
436  OUT struct IRPSTREAMPOSITION * Position)PURE;
437 };
438 
439 /*****************************************************************************
440  * IKsShellTransport
441  *****************************************************************************
442  */
443 
444 #undef INTERFACE
445 #define INTERFACE IKsShellTransport
446 
447 #define DEFINE_ABSTRACT_IKSSHELLTRANSPORT() \
448  STDMETHOD_(NTSTATUS, TransferKsIrp)(THIS_ \
449  IN PIRP Irp, \
450  OUT IKsShellTransport ** Transport) PURE; \
451  \
452  STDMETHOD_(NTSTATUS, Connect)(THIS_ \
453  IN IKsShellTransport * StartTransport, \
454  OUT IKsShellTransport ** EndTransport, \
455  IN KSPIN_DATAFLOW DataFlow)PURE; \
456  \
457  STDMETHOD_(NTSTATUS, SetDeviceState)(THIS_ \
458  IN KSSTATE State1, \
459  IN KSSTATE State2, \
460  OUT IKsShellTransport ** EndTransport)PURE; \
461  \
462  STDMETHOD_(NTSTATUS, SetResetState)(THIS_ \
463  IN KSRESET State1, \
464  OUT IKsShellTransport ** EndTransport)PURE;
465 
466 
467 DECLARE_INTERFACE_(IKsShellTransport, IUnknown)
468 {
470 
472 };
473 
474 /*****************************************************************************
475  * IIrpStream
476  *****************************************************************************
477  */
478 struct IRPSTREAM_POSITION;
479 struct IRPSTREAMPACKETINFO;
480 
481 #define DEFINE_ABSTRACT_IRPSTREAM() \
482  STDMETHOD_(NTSTATUS, TransferKsIrp)(THIS_ \
483  IN PIRP Irp, \
484  OUT IKsShellTransport ** Transport) PURE; \
485  \
486  STDMETHOD_(NTSTATUS, Connect)(THIS_ \
487  IN IKsShellTransport * StartTransport, \
488  OUT IKsShellTransport ** EndTransport, \
489  IN KSPIN_DATAFLOW DataFlow)PURE; \
490  \
491  STDMETHOD_(NTSTATUS, SetDeviceState)(THIS_ \
492  IN KSSTATE State1, \
493  IN KSSTATE State2, \
494  OUT IKsShellTransport ** EndTransport)PURE; \
495  \
496  STDMETHOD_(NTSTATUS, SetResetState)(THIS_ \
497  IN KSRESET State1, \
498  OUT IKsShellTransport ** EndTransport)PURE; \
499  \
500  STDMETHOD_(NTSTATUS, GetPosition)(THIS_ \
501  IN OUT struct IRPSTREAM_POSITION * Position) PURE; \
502  \
503  STDMETHOD_(NTSTATUS, Init)(THIS_ \
504  IN BOOLEAN Wait, \
505  KSPIN_CONNECT *ConnectDetails, \
506  PDEVICE_OBJECT DeviceObject, \
507  PDMA_ADAPTER DmaAdapter) PURE; \
508  \
509  STDMETHOD_(NTSTATUS, CancelAllIrps)(THIS_ \
510  ULONG Wait)PURE; \
511  \
512  STDMETHOD_(VOID, TerminatePacket)(THIS); \
513  \
514  STDMETHOD_(NTSTATUS, ChangeOptionsFlag)(THIS_ \
515  ULONG Unknown1, \
516  ULONG Unknown2, \
517  ULONG Unknown3, \
518  ULONG Unknown4)PURE; \
519  \
520  STDMETHOD_(NTSTATUS, GetPacketInfo)(THIS_ \
521  struct IRPSTREAMPACKETINFO * Info1, \
522  struct IRPSTREAMPACKETINFO * Info2)PURE; \
523  \
524  STDMETHOD_(NTSTATUS, SetPacketOffsets)(THIS_ \
525  ULONG Unknown1, \
526  ULONG Unknown2)PURE; \
527  \
528  STDMETHOD_(NTSTATUS, RegisterNotifySink)(THIS_ \
529  IN IIrpStreamNotify * NotifyStream)PURE;
530 
531 
532 
533 #undef INTERFACE
534 #define INTERFACE IIrpStream
535 
537 {
539 
541 };
542 
543 
544 /*****************************************************************************
545  * IIrpStreamPhysical
546  *****************************************************************************
547  */
548 #undef INTERFACE
549 #define INTERFACE IIrpStreamPhysical
550 
551 DECLARE_INTERFACE_(IIrpStreamPhysical, IIrpStream)
552 {
554 
556 
557  STDMETHOD_(NTSTATUS, GetMapping)(THIS_
558  IN PVOID Tag,
563 
564 };
565 
566 /*****************************************************************************
567  * IIrpStreamVirtual
568  *****************************************************************************
569  */
570 #undef INTERFACE
571 #define INTERFACE IIrpStreamVirtual
572 
573 DECLARE_INTERFACE_(IIrpStreamVirtual, IIrpStream)
574 {
576 
578 
579  STDMETHOD_(NTSTATUS, GetLockedRegion)(THIS_
580  OUT PULONG OutSize,
581  OUT PVOID * OutBuffer)PURE;
582 
584  IN BOOLEAN Wait,
585  OUT ULONG Size,
586  IN PULONG Buffer,
588 
589  STDMETHOD_(NTSTATUS, Complete)(THIS_
590  IN ULONG Unknown1,
591  IN PULONG Data)PURE;
592 
593  STDMETHOD_(ULONG, GetIrpStreamPositionLock)(THIS);
594 };
595 
596 /*****************************************************************************
597  * IPortFilterWavePci
598  *****************************************************************************
599  */
600 
601 #undef INTERFACE
602 #define INTERFACE IPortFilterWavePci
603 
604 struct IPortPinWavePci;
605 
606 DECLARE_INTERFACE_(IPortFilterWavePci, IIrpTarget)
607 {
609 
611 
614 
615  STDMETHOD_(NTSTATUS, FreePin)(THIS_
616  IN struct IPortPinWavePci* Pin)PURE;
617 };
618 
619 typedef IPortFilterWavePci *PPORTFILTERWAVEPCI;
620 
621 #define IMP_IPortFilterPci \
622  IMP_IIrpTarget; \
623  STDMETHODIMP_(NTSTATUS) Init(THIS_ \
624  IN PPORTWAVEPCI Port); \
625  STDMETHODIMP_(NTSTATUS) FreePin(THIS_ \
626  IN struct IPortPinWavePci* Pin)
627 
628 
629 /*****************************************************************************
630  * IPortPinWavePci
631  *****************************************************************************
632  */
633 
634 #undef INTERFACE
635 #define INTERFACE IPortPinWavePci
636 
637 DECLARE_INTERFACE_(IPortPinWavePci, IIrpTarget)
638 {
640 
642 
646  IN KSPIN_CONNECT * ConnectDetails,
647  IN KSPIN_DESCRIPTOR * PinDescriptor,
649 
650  STDMETHOD_(PVOID, GetIrpStream)(THIS) PURE;
651  STDMETHOD_(PMINIPORT, GetMiniport)(THIS) PURE;
652 };
653 
654 #define IMP_IPortPinWavePci \
655  IMP_IIrpTarget; \
656  STDMETHODIMP_(NTSTATUS) Init(THIS_ \
657  IN PPORTWAVEPCI Port, \
658  IN PPORTFILTERWAVEPCI Filter, \
659  IN KSPIN_CONNECT * ConnectDetails, \
660  IN KSPIN_DESCRIPTOR * PinDescriptor, \
661  IN PDEVICE_OBJECT DeviceObject); \
662  \
663  STDMETHODIMP_(PVOID) GetIrpStream(); \
664  STDMETHODIMP_(PMINIPORT) GetMiniport(THIS)
665 
666 
667 
668 typedef IPortPinWavePci *PPORTPINWAVEPCI;
669 
670 
671 #if (NTDDI_VERSION >= NTDDI_VISTA)
672 
673 /*****************************************************************************
674  * IPortFilterWaveRT
675  *****************************************************************************
676  */
677 
678 #undef INTERFACE
679 #define INTERFACE IPortFilterWaveRT
680 
681 #ifndef PPORTWAVERT
682 typedef IPortWaveRT *PPORTWAVERT;
683 #endif
684 
685 DECLARE_INTERFACE_(IPortFilterWaveRT, IIrpTarget)
686 {
688 
690 
693 };
694 
695 typedef IPortFilterWaveRT *PPORTFILTERWAVERT;
696 
697 #define IMP_IPortFilterWaveRT \
698  IMP_IIrpTarget; \
699  STDMETHODIMP_(NTSTATUS) Init(THIS_ \
700  IN PPORTWAVERT Port)
701 
702 
703 /*****************************************************************************
704  * IPortPinWaveRT
705  *****************************************************************************
706  */
707 
708 #undef INTERFACE
709 #define INTERFACE IPortPinWaveRT
710 
711 DECLARE_INTERFACE_(IPortPinWaveRT, IIrpTarget)
712 {
714 
716 
720  IN KSPIN_CONNECT * ConnectDetails,
721  IN KSPIN_DESCRIPTOR * PinDescriptor,
723 };
724 
725 typedef IPortPinWaveRT *PPORTPINWAVERT;
726 
727 #define IMP_IPortPinWaveRT \
728  IMP_IIrpTarget; \
729  STDMETHODIMP_(NTSTATUS) Init(THIS_ \
730  IN PPORTWAVERT Port, \
731  IN PPORTFILTERWAVERT Filter, \
732  IN KSPIN_CONNECT * ConnectDetails, \
733  IN KSPIN_DESCRIPTOR * PinDescriptor, \
734  IN PDEVICE_OBJECT DeviceObject)
735 
736 
737 #endif
738 
739 /*****************************************************************************
740  * IPortFilterWaveCyclic
741  *****************************************************************************
742  */
743 
744 #undef INTERFACE
745 #define INTERFACE IPortFilterWaveCyclic
746 
747 struct IPortPinWaveCyclic;
748 
749 DECLARE_INTERFACE_(IPortFilterWaveCyclic, IIrpTarget)
750 {
752 
754 
757 
758  STDMETHOD_(NTSTATUS, FreePin)(THIS_
759  IN struct IPortPinWaveCyclic* Pin)PURE;
760 };
761 
762 typedef IPortFilterWaveCyclic *PPORTFILTERWAVECYCLIC;
763 
764 #define IMP_IPortFilterWaveCyclic \
765  IMP_IIrpTarget; \
766  STDMETHODIMP_(NTSTATUS) Init(THIS_ \
767  IN PPORTWAVECYCLIC Port); \
768  STDMETHODIMP_(NTSTATUS) FreePin(THIS_ \
769  IN struct IPortPinWaveCyclic* Pin)
770 
771 
772 /*****************************************************************************
773  * IPortPinWaveCyclic
774  *****************************************************************************
775  */
776 
777 #undef INTERFACE
778 #define INTERFACE IPortPinWaveCyclic
779 
780 DECLARE_INTERFACE_(IPortPinWaveCyclic, IIrpTarget)
781 {
783 
785 
789  IN KSPIN_CONNECT * ConnectDetails,
790  IN KSPIN_DESCRIPTOR * PinDescriptor) PURE;
791 
792  STDMETHOD_(ULONG, GetCompletedPosition)(THIS) PURE;
793  STDMETHOD_(ULONG, GetCycleCount)(THIS) PURE;
794  STDMETHOD_(ULONG, GetDeviceBufferSize)(THIS) PURE;
795  STDMETHOD_(PVOID, GetIrpStream)(THIS) PURE;
796  STDMETHOD_(PMINIPORT, GetMiniport)(THIS) PURE;
797 };
798 
799 typedef IPortPinWaveCyclic *PPORTPINWAVECYCLIC;
800 
801 #define IMP_IPortPinWaveCyclic \
802  IMP_IIrpTarget; \
803  STDMETHODIMP_(NTSTATUS) Init(THIS_ \
804  IN PPORTWAVECYCLIC Port, \
805  IN PPORTFILTERWAVECYCLIC Filter, \
806  IN KSPIN_CONNECT * ConnectDetails, \
807  IN KSPIN_DESCRIPTOR * PinDescriptor); \
808  STDMETHODIMP_(ULONG) GetCompletedPosition(THIS); \
809  STDMETHODIMP_(ULONG) GetCycleCount(THIS); \
810  STDMETHODIMP_(ULONG) GetDeviceBufferSize(THIS); \
811  STDMETHODIMP_(PVOID) GetIrpStream(THIS); \
812  STDMETHODIMP_(PMINIPORT) GetMiniport(THIS)
813 
814 
815 /*****************************************************************************
816  * IPortFilterDMus
817  *****************************************************************************
818  */
819 
820 #undef INTERFACE
821 #define INTERFACE IPortFilterDMus
822 
823 struct IPortPinDMus;
824 
825 DECLARE_INTERFACE_(IPortFilterDMus, IUnknown)
826 {
828 
830 
833 
834  STDMETHOD_(NTSTATUS, FreePin)(THIS_
835  IN struct IPortPinDMus* Pin)PURE;
836 
837  STDMETHOD_(VOID, NotifyPins)(THIS) PURE;
838 };
839 
840 typedef IPortFilterDMus *PPORTFILTERDMUS;
841 
842 #define IMP_IPortFilterDMus \
843  IMP_IIrpTarget; \
844  STDMETHODIMP_(NTSTATUS) Init(THIS_ \
845  IN PPORTDMUS Port); \
846  STDMETHODIMP_(NTSTATUS) FreePin(THIS_ \
847  IN struct IPortPinDMus* Pin); \
848  STDMETHODIMP_(VOID) NotifyPins(THIS)
849 
850 /*****************************************************************************
851  * IPortPinDMus
852  *****************************************************************************
853  */
854 
855 #undef INTERFACE
856 #define INTERFACE IPortPinDMus
857 
858 DECLARE_INTERFACE_(IPortPinDMus, IIrpTarget)
859 {
861 
863 
865  IN PPORTDMUS Port,
867  IN KSPIN_CONNECT * ConnectDetails,
868  IN KSPIN_DESCRIPTOR * PinDescriptor,
870 
872 };
873 
874 #define IMP_IPortPinDMus \
875  IMP_IIrpTarget; \
876  STDMETHODIMP_(NTSTATUS) Init(THIS_ \
877  IN PPORTDMUS Port, \
878  IN PPORTFILTERDMUS Filter, \
879  IN KSPIN_CONNECT * ConnectDetails, \
880  IN KSPIN_DESCRIPTOR * PinDescriptor, \
881  IN PDEVICE_OBJECT DeviceObject); \
882  STDMETHODIMP_(VOID) Notify(THIS)
883 
884 typedef IPortPinDMus *PPORTPINDMUS;
885 
886 /*****************************************************************************
887  * IDmaChannelInit
888  *****************************************************************************
889  */
890 
891 #ifdef _MSC_VER
892 
893 #define IMP_IDmaChannelEx \
894  STDMETHODIMP_(NTSTATUS) AllocateBuffer( \
895  IN ULONG BufferSize, \
896  IN PPHYSICAL_ADDRESS PhysicalAddressConstraint OPTIONAL); \
897  \
898  STDMETHODIMP_(void) FreeBuffer(void); \
899  STDMETHODIMP_(ULONG) TransferCount(void); \
900  STDMETHODIMP_(ULONG) MaximumBufferSize(void); \
901  STDMETHODIMP_(ULONG) AllocatedBufferSize(void); \
902  STDMETHODIMP_(ULONG) BufferSize(void); \
903  \
904  STDMETHODIMP_(void) SetBufferSize( \
905  IN ULONG BufferSize); \
906  \
907  STDMETHODIMP_(PVOID) SystemAddress(void); \
908  STDMETHODIMP_(PHYSICAL_ADDRESS) PhysicalAddress(); \
909  STDMETHODIMP_(PADAPTER_OBJECT) GetAdapterObject(void); \
910  \
911  STDMETHODIMP_(void) CopyTo( \
912  IN PVOID Destination, \
913  IN PVOID Source, \
914  IN ULONG ByteCount); \
915  \
916  STDMETHODIMP_(void) CopyFrom( \
917  IN PVOID Destination, \
918  IN PVOID Source, \
919  IN ULONG ByteCount)
920 
921 #else
922 
923 #define IMP_IDmaChannelEx \
924  STDMETHODIMP_(NTSTATUS) AllocateBuffer( \
925  IN ULONG BufferSize, \
926  IN PPHYSICAL_ADDRESS PhysicalAddressConstraint OPTIONAL); \
927  \
928  STDMETHODIMP_(void) FreeBuffer(void); \
929  STDMETHODIMP_(ULONG) TransferCount(void); \
930  STDMETHODIMP_(ULONG) MaximumBufferSize(void); \
931  STDMETHODIMP_(ULONG) AllocatedBufferSize(void); \
932  STDMETHODIMP_(ULONG) BufferSize(void); \
933  \
934  STDMETHODIMP_(void) SetBufferSize( \
935  IN ULONG BufferSize); \
936  \
937  STDMETHODIMP_(PVOID) SystemAddress(void); \
938  STDMETHODIMP_(PHYSICAL_ADDRESS) PhysicalAddress( \
939  IN PPHYSICAL_ADDRESS PhysicalAddressConstraint OPTIONAL); \
940  STDMETHODIMP_(PADAPTER_OBJECT) GetAdapterObject(void); \
941  \
942  STDMETHODIMP_(void) CopyTo( \
943  IN PVOID Destination, \
944  IN PVOID Source, \
945  IN ULONG ByteCount); \
946  \
947  STDMETHODIMP_(void) CopyFrom( \
948  IN PVOID Destination, \
949  IN PVOID Source, \
950  IN ULONG ByteCount)
951 
952 
953 
954 #endif
955 
956 
957 #define IMP_IDmaChannelSlaveEx \
958  IMP_IDmaChannelEx; \
959  STDMETHODIMP_(NTSTATUS) Start( \
960  IN ULONG MapSize, \
961  IN BOOLEAN WriteToDevice); \
962  \
963  STDMETHODIMP_(NTSTATUS) Stop(void); \
964  STDMETHODIMP_(ULONG) ReadCounter(void); \
965  \
966  STDMETHODIMP_(NTSTATUS) WaitForTC( \
967  ULONG Timeout)
968 
969 #define IMP_IDmaChannelInit\
970  IMP_IDmaChannelSlaveEx;\
971  STDMETHODIMP_(NTSTATUS) Init( \
972  IN PDEVICE_DESCRIPTION DeviceDescription, \
973  IN PDEVICE_OBJECT DeviceObject)
974 
975 #ifdef _MSC_VER
976 
977 #define DEFINE_ABSTRACT_DMACHANNEL_EX() \
978  STDMETHOD_(NTSTATUS, AllocateBuffer)( THIS_ \
979  IN ULONG BufferSize, \
980  IN PPHYSICAL_ADDRESS PhysicalAddressConstraint OPTIONAL) PURE; \
981 \
982  STDMETHOD_(void, FreeBuffer)( THIS ) PURE; \
983  STDMETHOD_(ULONG, TransferCount)( THIS ) PURE; \
984  STDMETHOD_(ULONG, MaximumBufferSize)( THIS ) PURE; \
985  STDMETHOD_(ULONG, AllocatedBufferSize)( THIS ) PURE; \
986  STDMETHOD_(ULONG, BufferSize)( THIS ) PURE; \
987 \
988  STDMETHOD_(void, SetBufferSize)( THIS_ \
989  IN ULONG BufferSize) PURE; \
990 \
991  STDMETHOD_(PVOID, SystemAddress)( THIS ) PURE; \
992  STDMETHOD_(PHYSICAL_ADDRESS, PhysicalAddress)( THIS) PURE; \
993  STDMETHOD_(PADAPTER_OBJECT, GetAdapterObject)( THIS ) PURE; \
994 \
995  STDMETHOD_(void, CopyTo)( THIS_ \
996  IN PVOID Destination, \
997  IN PVOID Source, \
998  IN ULONG ByteCount) PURE; \
999 \
1000  STDMETHOD_(void, CopyFrom)( THIS_ \
1001  IN PVOID Destination, \
1002  IN PVOID Source, \
1003  IN ULONG ByteCount) PURE;
1004 #else
1005 
1006 #define DEFINE_ABSTRACT_DMACHANNEL_EX() \
1007  STDMETHOD_(NTSTATUS, AllocateBuffer)( THIS_ \
1008  IN ULONG BufferSize, \
1009  IN PPHYSICAL_ADDRESS PhysicalAddressConstraint OPTIONAL) PURE; \
1010 \
1011  STDMETHOD_(void, FreeBuffer)( THIS ) PURE; \
1012  STDMETHOD_(ULONG, TransferCount)( THIS ) PURE; \
1013  STDMETHOD_(ULONG, MaximumBufferSize)( THIS ) PURE; \
1014  STDMETHOD_(ULONG, AllocatedBufferSize)( THIS ) PURE; \
1015  STDMETHOD_(ULONG, BufferSize)( THIS ) PURE; \
1016 \
1017  STDMETHOD_(void, SetBufferSize)( THIS_ \
1018  IN ULONG BufferSize) PURE; \
1019 \
1020  STDMETHOD_(PVOID, SystemAddress)( THIS ) PURE; \
1021  STDMETHOD_(PHYSICAL_ADDRESS, PhysicalAddress)( THIS_ \
1022  IN PPHYSICAL_ADDRESS Address) PURE; \
1023  STDMETHOD_(PADAPTER_OBJECT, GetAdapterObject)( THIS ) PURE; \
1024 \
1025  STDMETHOD_(void, CopyTo)( THIS_ \
1026  IN PVOID Destination, \
1027  IN PVOID Source, \
1028  IN ULONG ByteCount) PURE; \
1029 \
1030  STDMETHOD_(void, CopyFrom)( THIS_ \
1031  IN PVOID Destination, \
1032  IN PVOID Source, \
1033  IN ULONG ByteCount) PURE;
1034 
1035 #endif
1036 #undef INTERFACE
1037 #define INTERFACE IDmaChannelInit
1038 
1039 DECLARE_INTERFACE_(IDmaChannelInit, IUnknown)
1040 {
1044 
1048 };
1049 
1050 #undef INTERFACE
1051 
1052 /*****************************************************************************
1053  * IPortFilterTopology
1054  *****************************************************************************
1055  */
1056 
1057 #undef INTERFACE
1058 #define INTERFACE IPortFilterTopology
1059 
1060 DECLARE_INTERFACE_(IPortFilterTopology, IIrpTarget)
1061 {
1063 
1065 
1068 };
1069 
1070 typedef IPortFilterTopology *PPORTFILTERTOPOLOGY;
1071 
1072 #define IMP_IPortFilterTopology \
1073  IMP_IIrpTarget; \
1074  STDMETHODIMP_(NTSTATUS) Init(THIS_ \
1075  IN PPORTTOPOLOGY Port)
1076 
1077 #undef INTERFACE
1078 
1079 /*****************************************************************************
1080  * IPortWaveRTStreamInit
1081  *****************************************************************************
1082  */
1083 
1084 #undef INTERFACE
1085 #define INTERFACE IPortWaveRTStreamInit
1086 
1087 
1088 DECLARE_INTERFACE_(IPortWaveRTStreamInit, IUnknown)
1089 {
1091 
1092  STDMETHOD_(PMDL, AllocatePagesForMdl)
1093  ( THIS_
1096  ) PURE;
1097 
1098  STDMETHOD_(PMDL, AllocateContiguousPagesForMdl)
1099  ( THIS_
1100  IN PHYSICAL_ADDRESS LowAddress,
1103  ) PURE;
1104 
1105  STDMETHOD_(PVOID, MapAllocatedPages)
1106  ( THIS_
1109  ) PURE;
1110 
1111  STDMETHOD_(VOID, UnmapAllocatedPages)
1112  ( THIS_
1115  ) PURE;
1116 
1117  STDMETHOD_(VOID, FreePagesFromMdl)
1118  ( THIS_
1120  ) PURE;
1121 
1122  STDMETHOD_(ULONG, GetPhysicalPagesCount)
1123  ( THIS_
1125  ) PURE;
1126 
1127  STDMETHOD_(PHYSICAL_ADDRESS, GetPhysicalPageAddress)
1128  ( THIS_
1131  IN ULONG Index
1132  ) PURE;
1133 };
1134 
1135 #undef INTERFACE
1136 
1137 #define IMP_IPortWaveRTStreamInit \
1138  STDMETHODIMP_(PMDL) AllocatePagesForMdl \
1139  ( THIS_ \
1140  IN PHYSICAL_ADDRESS HighAddress, \
1141  IN SIZE_T TotalBytes \
1142  ); \
1143  \
1144  STDMETHODIMP_(PMDL) AllocateContiguousPagesForMdl \
1145  ( THIS_ \
1146  IN PHYSICAL_ADDRESS LowAddress, \
1147  IN PHYSICAL_ADDRESS HighAddress, \
1148  IN SIZE_T TotalBytes \
1149  ); \
1150  \
1151  STDMETHODIMP_(PVOID) MapAllocatedPages \
1152  ( THIS_ \
1153  IN PMDL MemoryDescriptorList, \
1154  IN MEMORY_CACHING_TYPE CacheType \
1155  ); \
1156  \
1157  STDMETHODIMP_(VOID) UnmapAllocatedPages \
1158  ( THIS_ \
1159  IN PVOID BaseAddress, \
1160  IN PMDL MemoryDescriptorList \
1161  ); \
1162  \
1163  STDMETHODIMP_(VOID) FreePagesFromMdl \
1164  ( THIS_ \
1165  IN PMDL MemoryDescriptorList \
1166  ); \
1167  \
1168  STDMETHODIMP_(ULONG) GetPhysicalPagesCount \
1169  ( THIS_ \
1170  IN PMDL MemoryDescriptorList \
1171  ); \
1172  \
1173  STDMETHODIMP_(PHYSICAL_ADDRESS) GetPhysicalPageAddress \
1174  ( THIS_ \
1175  IN PPHYSICAL_ADDRESS Address, \
1176  IN PMDL MemoryDescriptorList, \
1177  IN ULONG Index \
1178  )
1179 
1180 #ifndef IMP_IPortClsVersion
1181 
1182 #define IMP_IPortClsVersion \
1183  STDMETHODIMP_(DWORD) GetVersion(void);
1184 
1185 #endif
1186 
1187 #ifdef IMP_IPortWaveRT
1188 #define IMP_IPortWaveRT IMP_IPort
1189 #endif
1190 
1191 #endif
IPortFilterWavePci * PPORTFILTERWAVEPCI
Definition: interfaces.hpp:617
KSTOPOLOGY * Topology
Definition: interfaces.hpp:218
BOOL WINAPI SHIM_OBJ_NAME() Notify(DWORD fdwReason, PVOID ptr)
CPPORT Port[4]
Definition: headless.c:34
#define IN
Definition: typedefs.h:38
IPortWaveRT * PPORTWAVERT
Definition: interfaces.hpp:682
_Must_inspect_result_ _In_ PFILE_OBJECT _In_opt_ PLARGE_INTEGER _In_ ULONG _In_ FLT_IO_OPERATION_FLAGS _Out_opt_ PULONG BytesWritten
Definition: fltkernel.h:1293
IPortFilterDMus * PPORTFILTERDMUS
Definition: interfaces.hpp:838
#define DEFINE_ABSTRACT_UNKNOWN()
Definition: ksiface.h:5
#define THIS_
Definition: basetyps.h:65
PKSPIN_LOCK EventListLock
Definition: interfaces.hpp:215
IPortTopology * PPORTTOPOLOGY
Definition: portcls.h:1403
#define THIS
Definition: basetyps.h:66
_In_ PIRP Irp
Definition: csq.h:116
IPortPinDMus * PPORTPINDMUS
Definition: interfaces.hpp:884
static COORD Position
Definition: mouse.c:34
unsigned char * PUCHAR
Definition: retypes.h:3
LONG NTSTATUS
Definition: precomp.h:26
PKSEVENT_SET EventSet
Definition: interfaces.hpp:213
IPortDMus * PPORTDMUS
Definition: dmusicks.h:167
PLIST_ENTRY EventList
Definition: interfaces.hpp:214
KSPIN_LOCK * PKSPIN_LOCK
Definition: env_spec_w32.h:73
DEFINE_GUID(IID_IIrpTarget, 0xB4C90A60, 0x5791, 0x11D0, 0xF9, 0x86, 0x00, 0xA0, 0xC9, 0x11, 0xB5, 0x44)
struct SYMBOLICLINK_ENTRY * PSYMBOLICLINK_ENTRY
Definition: interfaces.hpp:173
ULONG PinDescriptorSize
Definition: interfaces.hpp:199
_Must_inspect_result_ _In_ ULONG Flags
Definition: wsk.h:170
#define DEFINE_ABSTRACT_IRPTARGET()
Definition: interfaces.hpp:83
ULONG CurrentPinInstanceCount
Definition: interfaces.hpp:191
unsigned int BOOL
Definition: ntddk_ex.h:94
_Inout_ PMDL MemoryDescriptorList
Definition: mmfuncs.h:406
_Must_inspect_result_ _In_opt_ PFLT_FILTER Filter
Definition: fltkernel.h:1802
union Alignment_ Alignment
KSPIN_FACTORY Factory
Definition: interfaces.hpp:208
IPortPinWaveCyclic * PPORTPINWAVECYCLIC
Definition: interfaces.hpp:797
unsigned char BOOLEAN
_Must_inspect_result_ _In_ PHYSICAL_ADDRESS _In_ PHYSICAL_ADDRESS _In_opt_ PHYSICAL_ADDRESS _In_ MEMORY_CACHING_TYPE CacheType
Definition: mmfuncs.h:214
static WCHAR Address[46]
Definition: ping.c:68
_At_(*)(_In_ PWSK_CLIENT Client, _In_opt_ PUNICODE_STRING NodeName, _In_opt_ PUNICODE_STRING ServiceName, _In_opt_ ULONG NameSpace, _In_opt_ GUID *Provider, _In_opt_ PADDRINFOEXW Hints, _Outptr_ PADDRINFOEXW *Result, _In_opt_ PEPROCESS OwningProcess, _In_opt_ PETHREAD OwningThread, _Inout_ PIRP Irp Result)(Mem)) NTSTATUS(WSKAPI *PFN_WSK_GET_ADDRESS_INFO
Definition: wsk.h:426
_In_ LPGUID _In_ PVOID Data
Definition: classpnp.h:778
#define DEFINE_ABSTRACT_DMACHANNEL_EX()
IPortFilterWaveRT * PPORTFILTERWAVERT
Definition: interfaces.hpp:693
ULONG MaxFilterInstanceCount
Definition: interfaces.hpp:189
KSPIN_PHYSICALCONNECTION Connection
Definition: interfaces.hpp:183
#define WAIT
Definition: listbox.c:36
_Must_inspect_result_ _In_ PDEVICE_DESCRIPTION DeviceDescription
Definition: iofuncs.h:1015
_In_ HANDLE _Outptr_result_bytebuffer_ ViewSize PVOID * BaseAddress
Definition: mmfuncs.h:404
IN PDCB IN VBO IN ULONG IN BOOLEAN Pin
Definition: fatprocs.h:415
ULONG MinFilterInstanceCount
Definition: interfaces.hpp:190
static const UCHAR Index[8]
Definition: usbohci.c:18
#define BufferSize
Definition: classpnp.h:419
struct PHYSICAL_CONNECTION_ENTRY * PPHYSICAL_CONNECTION_ENTRY
ULONG FromPin
Definition: interfaces.hpp:182
#define DEFINE_ABSTRACT_IKSSHELLTRANSPORT()
Definition: interfaces.hpp:447
_Must_inspect_result_ typedef _In_ PHYSICAL_ADDRESS PhysicalAddress
Definition: iotypes.h:1061
Definition: typedefs.h:117
_In_ ULONG _In_ BOOLEAN _Must_inspect_result_ PVOID * VirtualAddress
Definition: ndis.h:3791
IN PVOID IN PVOID IN USHORT IN USHORT Size
Definition: pci.h:359
#define DEFINE_ABSTRACT_ISUBDEVICE()
Definition: interfaces.hpp:230
_Must_inspect_result_ typedef _In_ PHYSICAL_ADDRESS _In_ LARGE_INTEGER ByteCount
Definition: iotypes.h:1061
LIST_ENTRY PhysicalConnectionList
Definition: interfaces.hpp:220
DECLARE_INTERFACE_(IIrpTarget, IUnknown)
Definition: interfaces.hpp:157
UNICODE_STRING RefString
Definition: interfaces.hpp:221
IN PDEVICE_OBJECT DeviceObject
Definition: fatprocs.h:1560
ULONG_PTR SIZE_T
Definition: typedefs.h:78
Definition: interfaces.hpp:179
ISubdevice * PSUBDEVICE
Definition: interfaces.hpp:305
VOID Copy(PVOID Src, PVOID Dst, ULONG NumBytes)
Definition: mmixer.c:131
IPortPinWavePci * PPORTPINWAVEPCI
Definition: interfaces.hpp:668
_Must_inspect_result_ _In_ PHYSICAL_ADDRESS HighAddress
Definition: mmfuncs.h:226
IPortWavePci * PPORTWAVEPCI
Definition: portcls.h:1236
LIST_ENTRY Entry
Definition: interfaces.hpp:175
ULONG PinDescriptorCount
Definition: interfaces.hpp:198
IIrpTarget * PIRPTARGET
Definition: interfaces.hpp:162
unsigned int * PULONG
Definition: retypes.h:1
#define PURE
Definition: basetyps.h:64
LIST_ENTRY Entry
Definition: interfaces.hpp:181
#define DEFINE_ABSTRACT_IRPSTREAM()
Definition: interfaces.hpp:481
ULONG MaxGlobalInstanceCount
Definition: interfaces.hpp:188
IN ULONG IN ULONG Tag
Definition: evtlib.h:159
PIN_INSTANCE_INFO * Instances
Definition: interfaces.hpp:201
UNICODE_STRING SymbolicLink
Definition: interfaces.hpp:176
#define OUT
Definition: typedefs.h:39
unsigned int ULONG
Definition: retypes.h:1
IPortPinWaveRT * PPORTPINWAVERT
Definition: interfaces.hpp:723
PPCFILTER_DESCRIPTOR DeviceDescriptor
Definition: interfaces.hpp:217
IPortFilterTopology * PPORTFILTERTOPOLOGY
PKSPROPERTY_SET FilterPropertySet
Definition: interfaces.hpp:210
IPortFilterWaveCyclic * PPORTFILTERWAVECYCLIC
Definition: interfaces.hpp:760
#define STDMETHOD_(t, m)
Definition: basetyps.h:63
IN BOOLEAN OUT PSTR Buffer
Definition: progress.h:34
enum _MEMORY_CACHING_TYPE MEMORY_CACHING_TYPE
struct SUBDEVICE_DESCRIPTOR * PSUBDEVICE_DESCRIPTOR
IPortWaveCyclic * PPORTWAVECYCLIC
Definition: portcls.h:1172
KSPIN_DESCRIPTOR * KsPinDescriptor
Definition: interfaces.hpp:200
DWORD GetPosition(DWORD private_handle, PMMTIME time, DWORD time_size)
struct PIN_INSTANCE_INFO * PPIN_INSTANCE_INFO
#define DEFINE_ABSTRACT_DMACHANNELSLAVE()
Definition: portcls.h:781
_Must_inspect_result_ _In_ PHYSICAL_ADDRESS _In_ PHYSICAL_ADDRESS _In_ SIZE_T TotalBytes
Definition: mmfuncs.h:226
IN BOOLEAN Wait
Definition: fatprocs.h:1529
LIST_ENTRY SymbolicLinkList
Definition: interfaces.hpp:219
_In_ PSTORAGE_PROPERTY_ID _Outptr_ PSTORAGE_DESCRIPTOR_HEADER * Descriptor
Definition: classpnp.h:966