ReactOS 0.4.15-dev-7918-g2a2556c
interfaces.hpp
Go to the documentation of this file.
1#ifndef INTERFACES_H__
2#define INTERFACES_H__
3
4DEFINE_GUID(IID_IIrpTarget, 0xB4C90A60, 0x5791, 0x11D0, 0xF9, 0x86, 0x00, 0xA0, 0xC9, 0x11, 0xB5, 0x44);
5DEFINE_GUID(IID_ISubdevice, 0xB4C90A61, 0x5791, 0x11D0, 0xF9, 0x86, 0x00, 0xA0, 0xC9, 0x11, 0xB5, 0x44);
6DEFINE_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
164typedef IIrpTarget *PIRPTARGET;
165
166/*****************************************************************************
167 * ISubdevice
168 *****************************************************************************
169 */
170
171struct IIrpTargetFactory;
172
173typedef struct
174{
178
179typedef struct
180{
185
186typedef struct
187{
192
194
195
196typedef struct
197{
200 KSPIN_DESCRIPTOR * KsPinDescriptor;
203
204typedef 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
307typedef 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,
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,
349
350 STDMETHOD_(NTSTATUS, ReleaseMappingWithTag)(THIS_
351 IN PVOID Tag) PURE;
352
353 STDMETHOD_(ULONG, GetCurrentIrpOffset)(THIS) PURE;
354
355 STDMETHOD_(BOOLEAN, GetAcquiredTagRange)(THIS_
356 IN PVOID * FirstTag,
357 IN PVOID * LastTag) PURE;
358
359};
360
361
362#define IMP_IIrpQueue \
363 STDMETHODIMP_(NTSTATUS) Init(THIS_ \
364 IN PKSPIN_CONNECT ConnectDetails, \
365 IN PKSPIN_DESCRIPTOR Descriptor, \
366 IN ULONG FrameSize, \
367 IN ULONG Alignment, \
368 IN ULONG TagSupportEnabled); \
369 \
370 STDMETHODIMP_(NTSTATUS) AddMapping(THIS_ \
371 IN PIRP Irp, \
372 OUT PULONG Data); \
373 \
374 STDMETHODIMP_(NTSTATUS) GetMapping(THIS_ \
375 OUT PUCHAR * Buffer, \
376 OUT PULONG BufferSize); \
377 \
378 STDMETHODIMP_(VOID) UpdateMapping(THIS_ \
379 IN ULONG BytesWritten); \
380 \
381 STDMETHODIMP_(ULONG) NumData(THIS); \
382 \
383 STDMETHODIMP_(BOOL) CancelBuffers(THIS); \
384 \
385 STDMETHODIMP_(NTSTATUS) GetMappingWithTag(THIS_ \
386 IN PVOID Tag, \
387 OUT PPHYSICAL_ADDRESS PhysicalAddress, \
388 OUT PVOID *VirtualAddress, \
389 OUT PULONG ByteCount, \
390 OUT PULONG Flags); \
391 \
392 STDMETHODIMP_(NTSTATUS) ReleaseMappingWithTag( \
393 IN PVOID Tag); \
394 \
395 STDMETHODIMP_(BOOLEAN) HasLastMappingFailed(THIS); \
396 STDMETHODIMP_(ULONG) GetCurrentIrpOffset(THIS); \
397 STDMETHODIMP_(BOOLEAN) GetAcquiredTagRange(THIS_ \
398 IN PVOID * FirstTag, \
399 IN PVOID * LastTag);
400
401
402
403/*****************************************************************************
404 * IKsWorkSink
405 *****************************************************************************
406 */
407#undef INTERFACE
408#define INTERFACE IKsWorkSink
409
411{
413
414 STDMETHOD_(NTSTATUS, Work)(THIS);
415};
416
417/*****************************************************************************
418 * IIrpStreamNotify
419 *****************************************************************************
420 */
421#undef INTERFACE
422#define INTERFACE IIrpStreamNotify
423
424struct IRPSTREAMPOSITION;
425
426DECLARE_INTERFACE_(IIrpStreamNotify, IUnknown)
427{
429
430 STDMETHOD_(NTSTATUS, IrpSubmitted)(THIS_
431 IN PIRP Irp,
433
435 OUT struct IRPSTREAMPOSITION * Position)PURE;
436};
437
438/*****************************************************************************
439 * IKsShellTransport
440 *****************************************************************************
441 */
442
443#undef INTERFACE
444#define INTERFACE IKsShellTransport
445
446#define DEFINE_ABSTRACT_IKSSHELLTRANSPORT() \
447 STDMETHOD_(NTSTATUS, TransferKsIrp)(THIS_ \
448 IN PIRP Irp, \
449 OUT IKsShellTransport ** Transport) PURE; \
450 \
451 STDMETHOD_(NTSTATUS, Connect)(THIS_ \
452 IN IKsShellTransport * StartTransport, \
453 OUT IKsShellTransport ** EndTransport, \
454 IN KSPIN_DATAFLOW DataFlow)PURE; \
455 \
456 STDMETHOD_(NTSTATUS, SetDeviceState)(THIS_ \
457 IN KSSTATE State1, \
458 IN KSSTATE State2, \
459 OUT IKsShellTransport ** EndTransport)PURE; \
460 \
461 STDMETHOD_(NTSTATUS, SetResetState)(THIS_ \
462 IN KSRESET State1, \
463 OUT IKsShellTransport ** EndTransport)PURE;
464
465
466DECLARE_INTERFACE_(IKsShellTransport, IUnknown)
467{
469
471};
472
473/*****************************************************************************
474 * IIrpStream
475 *****************************************************************************
476 */
477struct IRPSTREAM_POSITION;
478struct IRPSTREAMPACKETINFO;
479
480#define DEFINE_ABSTRACT_IRPSTREAM() \
481 STDMETHOD_(NTSTATUS, TransferKsIrp)(THIS_ \
482 IN PIRP Irp, \
483 OUT IKsShellTransport ** Transport) PURE; \
484 \
485 STDMETHOD_(NTSTATUS, Connect)(THIS_ \
486 IN IKsShellTransport * StartTransport, \
487 OUT IKsShellTransport ** EndTransport, \
488 IN KSPIN_DATAFLOW DataFlow)PURE; \
489 \
490 STDMETHOD_(NTSTATUS, SetDeviceState)(THIS_ \
491 IN KSSTATE State1, \
492 IN KSSTATE State2, \
493 OUT IKsShellTransport ** EndTransport)PURE; \
494 \
495 STDMETHOD_(NTSTATUS, SetResetState)(THIS_ \
496 IN KSRESET State1, \
497 OUT IKsShellTransport ** EndTransport)PURE; \
498 \
499 STDMETHOD_(NTSTATUS, GetPosition)(THIS_ \
500 IN OUT struct IRPSTREAM_POSITION * Position) PURE; \
501 \
502 STDMETHOD_(NTSTATUS, Init)(THIS_ \
503 IN BOOLEAN Wait, \
504 KSPIN_CONNECT *ConnectDetails, \
505 PDEVICE_OBJECT DeviceObject, \
506 PDMA_ADAPTER DmaAdapter) PURE; \
507 \
508 STDMETHOD_(NTSTATUS, CancelAllIrps)(THIS_ \
509 ULONG Wait)PURE; \
510 \
511 STDMETHOD_(VOID, TerminatePacket)(THIS); \
512 \
513 STDMETHOD_(NTSTATUS, ChangeOptionsFlag)(THIS_ \
514 ULONG Unknown1, \
515 ULONG Unknown2, \
516 ULONG Unknown3, \
517 ULONG Unknown4)PURE; \
518 \
519 STDMETHOD_(NTSTATUS, GetPacketInfo)(THIS_ \
520 struct IRPSTREAMPACKETINFO * Info1, \
521 struct IRPSTREAMPACKETINFO * Info2)PURE; \
522 \
523 STDMETHOD_(NTSTATUS, SetPacketOffsets)(THIS_ \
524 ULONG Unknown1, \
525 ULONG Unknown2)PURE; \
526 \
527 STDMETHOD_(NTSTATUS, RegisterNotifySink)(THIS_ \
528 IN IIrpStreamNotify * NotifyStream)PURE;
529
530
531
532#undef INTERFACE
533#define INTERFACE IIrpStream
534
536{
538
540};
541
542
543/*****************************************************************************
544 * IIrpStreamPhysical
545 *****************************************************************************
546 */
547#undef INTERFACE
548#define INTERFACE IIrpStreamPhysical
549
550DECLARE_INTERFACE_(IIrpStreamPhysical, IIrpStream)
551{
553
555
556 STDMETHOD_(NTSTATUS, GetMapping)(THIS_
557 IN PVOID Tag,
562
563};
564
565/*****************************************************************************
566 * IIrpStreamVirtual
567 *****************************************************************************
568 */
569#undef INTERFACE
570#define INTERFACE IIrpStreamVirtual
571
572DECLARE_INTERFACE_(IIrpStreamVirtual, IIrpStream)
573{
575
577
578 STDMETHOD_(NTSTATUS, GetLockedRegion)(THIS_
579 OUT PULONG OutSize,
581
584 OUT ULONG Size,
587
589 IN ULONG Unknown1,
591
592 STDMETHOD_(ULONG, GetIrpStreamPositionLock)(THIS);
593};
594
595/*****************************************************************************
596 * IPortFilterWavePci
597 *****************************************************************************
598 */
599
600#undef INTERFACE
601#define INTERFACE IPortFilterWavePci
602
603struct IPortPinWavePci;
604
605DECLARE_INTERFACE_(IPortFilterWavePci, IIrpTarget)
606{
608
610
613
614 STDMETHOD_(NTSTATUS, FreePin)(THIS_
615 IN struct IPortPinWavePci* Pin)PURE;
616};
617
618typedef IPortFilterWavePci *PPORTFILTERWAVEPCI;
619
620#define IMP_IPortFilterPci \
621 IMP_IIrpTarget; \
622 STDMETHODIMP_(NTSTATUS) Init(THIS_ \
623 IN PPORTWAVEPCI Port); \
624 STDMETHODIMP_(NTSTATUS) FreePin(THIS_ \
625 IN struct IPortPinWavePci* Pin)
626
627
628/*****************************************************************************
629 * IPortPinWavePci
630 *****************************************************************************
631 */
632
633#undef INTERFACE
634#define INTERFACE IPortPinWavePci
635
636DECLARE_INTERFACE_(IPortPinWavePci, IIrpTarget)
637{
639
641
645 IN KSPIN_CONNECT * ConnectDetails,
646 IN KSPIN_DESCRIPTOR * PinDescriptor,
648
649 STDMETHOD_(PVOID, GetIrpStream)(THIS) PURE;
650 STDMETHOD_(PMINIPORT, GetMiniport)(THIS) PURE;
651};
652
653#define IMP_IPortPinWavePci \
654 IMP_IIrpTarget; \
655 STDMETHODIMP_(NTSTATUS) Init(THIS_ \
656 IN PPORTWAVEPCI Port, \
657 IN PPORTFILTERWAVEPCI Filter, \
658 IN KSPIN_CONNECT * ConnectDetails, \
659 IN KSPIN_DESCRIPTOR * PinDescriptor, \
660 IN PDEVICE_OBJECT DeviceObject); \
661 \
662 STDMETHODIMP_(PVOID) GetIrpStream(); \
663 STDMETHODIMP_(PMINIPORT) GetMiniport(THIS)
664
665
666
667typedef IPortPinWavePci *PPORTPINWAVEPCI;
668
669
670#if (NTDDI_VERSION >= NTDDI_VISTA)
671
672/*****************************************************************************
673 * IPortFilterWaveRT
674 *****************************************************************************
675 */
676
677#undef INTERFACE
678#define INTERFACE IPortFilterWaveRT
679
680#ifndef PPORTWAVERT
681typedef IPortWaveRT *PPORTWAVERT;
682#endif
683
684DECLARE_INTERFACE_(IPortFilterWaveRT, IIrpTarget)
685{
687
689
692};
693
694typedef IPortFilterWaveRT *PPORTFILTERWAVERT;
695
696#define IMP_IPortFilterWaveRT \
697 IMP_IIrpTarget; \
698 STDMETHODIMP_(NTSTATUS) Init(THIS_ \
699 IN PPORTWAVERT Port)
700
701
702/*****************************************************************************
703 * IPortPinWaveRT
704 *****************************************************************************
705 */
706
707#undef INTERFACE
708#define INTERFACE IPortPinWaveRT
709
710DECLARE_INTERFACE_(IPortPinWaveRT, IIrpTarget)
711{
713
715
719 IN KSPIN_CONNECT * ConnectDetails,
720 IN KSPIN_DESCRIPTOR * PinDescriptor,
722};
723
724typedef IPortPinWaveRT *PPORTPINWAVERT;
725
726#define IMP_IPortPinWaveRT \
727 IMP_IIrpTarget; \
728 STDMETHODIMP_(NTSTATUS) Init(THIS_ \
729 IN PPORTWAVERT Port, \
730 IN PPORTFILTERWAVERT Filter, \
731 IN KSPIN_CONNECT * ConnectDetails, \
732 IN KSPIN_DESCRIPTOR * PinDescriptor, \
733 IN PDEVICE_OBJECT DeviceObject)
734
735
736#endif
737
738/*****************************************************************************
739 * IPortFilterWaveCyclic
740 *****************************************************************************
741 */
742
743#undef INTERFACE
744#define INTERFACE IPortFilterWaveCyclic
745
746struct IPortPinWaveCyclic;
747
748DECLARE_INTERFACE_(IPortFilterWaveCyclic, IIrpTarget)
749{
751
753
756
757 STDMETHOD_(NTSTATUS, FreePin)(THIS_
758 IN struct IPortPinWaveCyclic* Pin)PURE;
759};
760
761typedef IPortFilterWaveCyclic *PPORTFILTERWAVECYCLIC;
762
763#define IMP_IPortFilterWaveCyclic \
764 IMP_IIrpTarget; \
765 STDMETHODIMP_(NTSTATUS) Init(THIS_ \
766 IN PPORTWAVECYCLIC Port); \
767 STDMETHODIMP_(NTSTATUS) FreePin(THIS_ \
768 IN struct IPortPinWaveCyclic* Pin)
769
770
771/*****************************************************************************
772 * IPortPinWaveCyclic
773 *****************************************************************************
774 */
775
776#undef INTERFACE
777#define INTERFACE IPortPinWaveCyclic
778
779DECLARE_INTERFACE_(IPortPinWaveCyclic, IIrpTarget)
780{
782
784
788 IN KSPIN_CONNECT * ConnectDetails,
789 IN KSPIN_DESCRIPTOR * PinDescriptor) PURE;
790
791 STDMETHOD_(ULONG, GetCompletedPosition)(THIS) PURE;
792 STDMETHOD_(ULONG, GetCycleCount)(THIS) PURE;
793 STDMETHOD_(ULONG, GetDeviceBufferSize)(THIS) PURE;
794 STDMETHOD_(PVOID, GetIrpStream)(THIS) PURE;
795 STDMETHOD_(PMINIPORT, GetMiniport)(THIS) PURE;
796};
797
798typedef IPortPinWaveCyclic *PPORTPINWAVECYCLIC;
799
800#define IMP_IPortPinWaveCyclic \
801 IMP_IIrpTarget; \
802 STDMETHODIMP_(NTSTATUS) Init(THIS_ \
803 IN PPORTWAVECYCLIC Port, \
804 IN PPORTFILTERWAVECYCLIC Filter, \
805 IN KSPIN_CONNECT * ConnectDetails, \
806 IN KSPIN_DESCRIPTOR * PinDescriptor); \
807 STDMETHODIMP_(ULONG) GetCompletedPosition(THIS); \
808 STDMETHODIMP_(ULONG) GetCycleCount(THIS); \
809 STDMETHODIMP_(ULONG) GetDeviceBufferSize(THIS); \
810 STDMETHODIMP_(PVOID) GetIrpStream(THIS); \
811 STDMETHODIMP_(PMINIPORT) GetMiniport(THIS)
812
813
814/*****************************************************************************
815 * IPortFilterDMus
816 *****************************************************************************
817 */
818
819#undef INTERFACE
820#define INTERFACE IPortFilterDMus
821
822struct IPortPinDMus;
823
825{
827
829
832
833 STDMETHOD_(NTSTATUS, FreePin)(THIS_
834 IN struct IPortPinDMus* Pin)PURE;
835
836 STDMETHOD_(VOID, NotifyPins)(THIS) PURE;
837};
838
839typedef IPortFilterDMus *PPORTFILTERDMUS;
840
841#define IMP_IPortFilterDMus \
842 IMP_IIrpTarget; \
843 STDMETHODIMP_(NTSTATUS) Init(THIS_ \
844 IN PPORTDMUS Port); \
845 STDMETHODIMP_(NTSTATUS) FreePin(THIS_ \
846 IN struct IPortPinDMus* Pin); \
847 STDMETHODIMP_(VOID) NotifyPins(THIS)
848
849/*****************************************************************************
850 * IPortPinDMus
851 *****************************************************************************
852 */
853
854#undef INTERFACE
855#define INTERFACE IPortPinDMus
856
857DECLARE_INTERFACE_(IPortPinDMus, IIrpTarget)
858{
860
862
866 IN KSPIN_CONNECT * ConnectDetails,
867 IN KSPIN_DESCRIPTOR * PinDescriptor,
869
871};
872
873#define IMP_IPortPinDMus \
874 IMP_IIrpTarget; \
875 STDMETHODIMP_(NTSTATUS) Init(THIS_ \
876 IN PPORTDMUS Port, \
877 IN PPORTFILTERDMUS Filter, \
878 IN KSPIN_CONNECT * ConnectDetails, \
879 IN KSPIN_DESCRIPTOR * PinDescriptor, \
880 IN PDEVICE_OBJECT DeviceObject); \
881 STDMETHODIMP_(VOID) Notify(THIS)
882
883typedef IPortPinDMus *PPORTPINDMUS;
884
885/*****************************************************************************
886 * IDmaChannelInit
887 *****************************************************************************
888 */
889
890#ifdef _MSC_VER
891
892#define IMP_IDmaChannelEx \
893 STDMETHODIMP_(NTSTATUS) AllocateBuffer( \
894 IN ULONG BufferSize, \
895 IN PPHYSICAL_ADDRESS PhysicalAddressConstraint OPTIONAL); \
896 \
897 STDMETHODIMP_(void) FreeBuffer(void); \
898 STDMETHODIMP_(ULONG) TransferCount(void); \
899 STDMETHODIMP_(ULONG) MaximumBufferSize(void); \
900 STDMETHODIMP_(ULONG) AllocatedBufferSize(void); \
901 STDMETHODIMP_(ULONG) BufferSize(void); \
902 \
903 STDMETHODIMP_(void) SetBufferSize( \
904 IN ULONG BufferSize); \
905 \
906 STDMETHODIMP_(PVOID) SystemAddress(void); \
907 STDMETHODIMP_(PHYSICAL_ADDRESS) PhysicalAddress(); \
908 STDMETHODIMP_(PADAPTER_OBJECT) GetAdapterObject(void); \
909 \
910 STDMETHODIMP_(void) CopyTo( \
911 IN PVOID Destination, \
912 IN PVOID Source, \
913 IN ULONG ByteCount); \
914 \
915 STDMETHODIMP_(void) CopyFrom( \
916 IN PVOID Destination, \
917 IN PVOID Source, \
918 IN ULONG ByteCount)
919
920#else
921
922#define IMP_IDmaChannelEx \
923 STDMETHODIMP_(NTSTATUS) AllocateBuffer( \
924 IN ULONG BufferSize, \
925 IN PPHYSICAL_ADDRESS PhysicalAddressConstraint OPTIONAL); \
926 \
927 STDMETHODIMP_(void) FreeBuffer(void); \
928 STDMETHODIMP_(ULONG) TransferCount(void); \
929 STDMETHODIMP_(ULONG) MaximumBufferSize(void); \
930 STDMETHODIMP_(ULONG) AllocatedBufferSize(void); \
931 STDMETHODIMP_(ULONG) BufferSize(void); \
932 \
933 STDMETHODIMP_(void) SetBufferSize( \
934 IN ULONG BufferSize); \
935 \
936 STDMETHODIMP_(PVOID) SystemAddress(void); \
937 STDMETHODIMP_(PHYSICAL_ADDRESS) PhysicalAddress( \
938 IN PPHYSICAL_ADDRESS PhysicalAddressConstraint OPTIONAL); \
939 STDMETHODIMP_(PADAPTER_OBJECT) GetAdapterObject(void); \
940 \
941 STDMETHODIMP_(void) CopyTo( \
942 IN PVOID Destination, \
943 IN PVOID Source, \
944 IN ULONG ByteCount); \
945 \
946 STDMETHODIMP_(void) CopyFrom( \
947 IN PVOID Destination, \
948 IN PVOID Source, \
949 IN ULONG ByteCount)
950
951
952
953#endif
954
955
956#define IMP_IDmaChannelSlaveEx \
957 IMP_IDmaChannelEx; \
958 STDMETHODIMP_(NTSTATUS) Start( \
959 IN ULONG MapSize, \
960 IN BOOLEAN WriteToDevice); \
961 \
962 STDMETHODIMP_(NTSTATUS) Stop(void); \
963 STDMETHODIMP_(ULONG) ReadCounter(void); \
964 \
965 STDMETHODIMP_(NTSTATUS) WaitForTC( \
966 ULONG Timeout)
967
968#define IMP_IDmaChannelInit\
969 IMP_IDmaChannelSlaveEx;\
970 STDMETHODIMP_(NTSTATUS) Init( \
971 IN PDEVICE_DESCRIPTION DeviceDescription, \
972 IN PDEVICE_OBJECT DeviceObject)
973
974#ifdef _MSC_VER
975
976#define DEFINE_ABSTRACT_DMACHANNEL_EX() \
977 STDMETHOD_(NTSTATUS, AllocateBuffer)( THIS_ \
978 IN ULONG BufferSize, \
979 IN PPHYSICAL_ADDRESS PhysicalAddressConstraint OPTIONAL) PURE; \
980\
981 STDMETHOD_(void, FreeBuffer)( THIS ) PURE; \
982 STDMETHOD_(ULONG, TransferCount)( THIS ) PURE; \
983 STDMETHOD_(ULONG, MaximumBufferSize)( THIS ) PURE; \
984 STDMETHOD_(ULONG, AllocatedBufferSize)( THIS ) PURE; \
985 STDMETHOD_(ULONG, BufferSize)( THIS ) PURE; \
986\
987 STDMETHOD_(void, SetBufferSize)( THIS_ \
988 IN ULONG BufferSize) PURE; \
989\
990 STDMETHOD_(PVOID, SystemAddress)( THIS ) PURE; \
991 STDMETHOD_(PHYSICAL_ADDRESS, PhysicalAddress)( THIS) PURE; \
992 STDMETHOD_(PADAPTER_OBJECT, GetAdapterObject)( THIS ) PURE; \
993\
994 STDMETHOD_(void, CopyTo)( THIS_ \
995 IN PVOID Destination, \
996 IN PVOID Source, \
997 IN ULONG ByteCount) PURE; \
998\
999 STDMETHOD_(void, CopyFrom)( THIS_ \
1000 IN PVOID Destination, \
1001 IN PVOID Source, \
1002 IN ULONG ByteCount) PURE;
1003#else
1004
1005#define DEFINE_ABSTRACT_DMACHANNEL_EX() \
1006 STDMETHOD_(NTSTATUS, AllocateBuffer)( THIS_ \
1007 IN ULONG BufferSize, \
1008 IN PPHYSICAL_ADDRESS PhysicalAddressConstraint OPTIONAL) PURE; \
1009\
1010 STDMETHOD_(void, FreeBuffer)( THIS ) PURE; \
1011 STDMETHOD_(ULONG, TransferCount)( THIS ) PURE; \
1012 STDMETHOD_(ULONG, MaximumBufferSize)( THIS ) PURE; \
1013 STDMETHOD_(ULONG, AllocatedBufferSize)( THIS ) PURE; \
1014 STDMETHOD_(ULONG, BufferSize)( THIS ) PURE; \
1015\
1016 STDMETHOD_(void, SetBufferSize)( THIS_ \
1017 IN ULONG BufferSize) PURE; \
1018\
1019 STDMETHOD_(PVOID, SystemAddress)( THIS ) PURE; \
1020 STDMETHOD_(PHYSICAL_ADDRESS, PhysicalAddress)( THIS_ \
1021 IN PPHYSICAL_ADDRESS Address) PURE; \
1022 STDMETHOD_(PADAPTER_OBJECT, GetAdapterObject)( THIS ) PURE; \
1023\
1024 STDMETHOD_(void, CopyTo)( THIS_ \
1025 IN PVOID Destination, \
1026 IN PVOID Source, \
1027 IN ULONG ByteCount) PURE; \
1028\
1029 STDMETHOD_(void, CopyFrom)( THIS_ \
1030 IN PVOID Destination, \
1031 IN PVOID Source, \
1032 IN ULONG ByteCount) PURE;
1033
1034#endif
1035#undef INTERFACE
1036#define INTERFACE IDmaChannelInit
1037
1039{
1043
1047};
1048
1049#undef INTERFACE
1050
1051/*****************************************************************************
1052 * IPortFilterTopology
1053 *****************************************************************************
1054 */
1055
1056#undef INTERFACE
1057#define INTERFACE IPortFilterTopology
1058
1059DECLARE_INTERFACE_(IPortFilterTopology, IIrpTarget)
1060{
1062
1064
1067};
1068
1069typedef IPortFilterTopology *PPORTFILTERTOPOLOGY;
1070
1071#define IMP_IPortFilterTopology \
1072 IMP_IIrpTarget; \
1073 STDMETHODIMP_(NTSTATUS) Init(THIS_ \
1074 IN PPORTTOPOLOGY Port)
1075
1076#undef INTERFACE
1077
1078/*****************************************************************************
1079 * IPortWaveRTStreamInit
1080 *****************************************************************************
1081 */
1082
1083#undef INTERFACE
1084#define INTERFACE IPortWaveRTStreamInit
1085
1086
1087DECLARE_INTERFACE_(IPortWaveRTStreamInit, IUnknown)
1088{
1090
1091 STDMETHOD_(PMDL, AllocatePagesForMdl)
1092 ( THIS_
1095 ) PURE;
1096
1097 STDMETHOD_(PMDL, AllocateContiguousPagesForMdl)
1098 ( THIS_
1099 IN PHYSICAL_ADDRESS LowAddress,
1102 ) PURE;
1103
1104 STDMETHOD_(PVOID, MapAllocatedPages)
1105 ( THIS_
1108 ) PURE;
1109
1110 STDMETHOD_(VOID, UnmapAllocatedPages)
1111 ( THIS_
1114 ) PURE;
1115
1116 STDMETHOD_(VOID, FreePagesFromMdl)
1117 ( THIS_
1119 ) PURE;
1120
1121 STDMETHOD_(ULONG, GetPhysicalPagesCount)
1122 ( THIS_
1124 ) PURE;
1125
1126 STDMETHOD_(PHYSICAL_ADDRESS, GetPhysicalPageAddress)
1127 ( THIS_
1130 IN ULONG Index
1131 ) PURE;
1132};
1133
1134#undef INTERFACE
1135
1136#define IMP_IPortWaveRTStreamInit \
1137 STDMETHODIMP_(PMDL) AllocatePagesForMdl \
1138 ( THIS_ \
1139 IN PHYSICAL_ADDRESS HighAddress, \
1140 IN SIZE_T TotalBytes \
1141 ); \
1142 \
1143 STDMETHODIMP_(PMDL) AllocateContiguousPagesForMdl \
1144 ( THIS_ \
1145 IN PHYSICAL_ADDRESS LowAddress, \
1146 IN PHYSICAL_ADDRESS HighAddress, \
1147 IN SIZE_T TotalBytes \
1148 ); \
1149 \
1150 STDMETHODIMP_(PVOID) MapAllocatedPages \
1151 ( THIS_ \
1152 IN PMDL MemoryDescriptorList, \
1153 IN MEMORY_CACHING_TYPE CacheType \
1154 ); \
1155 \
1156 STDMETHODIMP_(VOID) UnmapAllocatedPages \
1157 ( THIS_ \
1158 IN PVOID BaseAddress, \
1159 IN PMDL MemoryDescriptorList \
1160 ); \
1161 \
1162 STDMETHODIMP_(VOID) FreePagesFromMdl \
1163 ( THIS_ \
1164 IN PMDL MemoryDescriptorList \
1165 ); \
1166 \
1167 STDMETHODIMP_(ULONG) GetPhysicalPagesCount \
1168 ( THIS_ \
1169 IN PMDL MemoryDescriptorList \
1170 ); \
1171 \
1172 STDMETHODIMP_(PHYSICAL_ADDRESS) GetPhysicalPageAddress \
1173 ( THIS_ \
1174 IN PPHYSICAL_ADDRESS Address, \
1175 IN PMDL MemoryDescriptorList, \
1176 IN ULONG Index \
1177 )
1178
1179#ifndef IMP_IPortClsVersion
1180
1181#define IMP_IPortClsVersion \
1182 STDMETHODIMP_(DWORD) GetVersion(void);
1183
1184#endif
1185
1186#ifdef IMP_IPortWaveRT
1187#define IMP_IPortWaveRT IMP_IPort
1188#endif
1189
1190#endif
unsigned char BOOLEAN
IPortFilterDMus * PPORTFILTERDMUS
Definition: interfaces.hpp:839
#define DEFINE_ABSTRACT_ISUBDEVICE()
Definition: interfaces.hpp:230
IPortWaveRT * PPORTWAVERT
Definition: interfaces.hpp:681
IPortFilterWaveCyclic * PPORTFILTERWAVECYCLIC
Definition: interfaces.hpp:761
IPortPinWaveRT * PPORTPINWAVERT
Definition: interfaces.hpp:724
#define DEFINE_ABSTRACT_DMACHANNEL_EX()
IIrpTarget * PIRPTARGET
Definition: interfaces.hpp:164
#define DEFINE_ABSTRACT_IRPTARGET()
Definition: interfaces.hpp:83
struct PHYSICAL_CONNECTION_ENTRY * PPHYSICAL_CONNECTION_ENTRY
#define DEFINE_ABSTRACT_IRPSTREAM()
Definition: interfaces.hpp:480
#define DEFINE_ABSTRACT_IKSSHELLTRANSPORT()
Definition: interfaces.hpp:446
struct SUBDEVICE_DESCRIPTOR * PSUBDEVICE_DESCRIPTOR
IPortFilterWaveRT * PPORTFILTERWAVERT
Definition: interfaces.hpp:694
IPortPinWaveCyclic * PPORTPINWAVECYCLIC
Definition: interfaces.hpp:798
ISubdevice * PSUBDEVICE
Definition: interfaces.hpp:307
struct PIN_INSTANCE_INFO * PPIN_INSTANCE_INFO
IPortPinDMus * PPORTPINDMUS
Definition: interfaces.hpp:883
IPortFilterTopology * PPORTFILTERTOPOLOGY
IPortPinWavePci * PPORTPINWAVEPCI
Definition: interfaces.hpp:667
IPortFilterWavePci * PPORTFILTERWAVEPCI
Definition: interfaces.hpp:618
struct SYMBOLICLINK_ENTRY * PSYMBOLICLINK_ENTRY
LONG NTSTATUS
Definition: precomp.h:26
#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
Definition: bufpool.h:45
_In_ PIRP Irp
Definition: csq.h:116
#define BufferSize
Definition: mmc.h:75
BOOL WINAPI SHIM_OBJ_NAME() Notify(DWORD fdwReason, PVOID ptr)
VOID Copy(PVOID Src, PVOID Dst, ULONG NumBytes)
Definition: mmixer.c:126
IPortDMus * PPORTDMUS
Definition: dmusicks.h:168
KSPIN_LOCK * PKSPIN_LOCK
Definition: env_spec_w32.h:73
IN PDCB IN VBO IN ULONG IN BOOLEAN Pin
Definition: fatprocs.h:427
unsigned int BOOL
Definition: ntddk_ex.h:94
_Must_inspect_result_ _In_opt_ PFLT_FILTER Filter
Definition: fltkernel.h:1801
union Alignment_ Alignment
pRequest Complete(RequestStatus)
CPPORT Port[4]
Definition: headless.c:35
#define DEFINE_ABSTRACT_UNKNOWN()
Definition: ksiface.h:5
DWORD GetPosition(DWORD private_handle, PMMTIME time, DWORD time_size)
#define WAIT
Definition: listbox.c:36
_In_ HANDLE _Outptr_result_bytebuffer_ ViewSize PVOID * BaseAddress
Definition: mmfuncs.h:404
static WCHAR Address[46]
Definition: ping.c:68
#define DEFINE_ABSTRACT_DMACHANNELSLAVE()
Definition: portcls.h:791
IPortWaveCyclic * PPORTWAVECYCLIC
Definition: portcls.h:1184
IPortTopology * PPORTTOPOLOGY
Definition: portcls.h:1415
IPortWavePci * PPORTWAVEPCI
Definition: portcls.h:1248
#define DEFINE_GUID(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8)
Definition: guiddef.h:68
_In_ UCHAR _In_ ULONG _Out_ PUCHAR _Outptr_result_bytebuffer_ OutBufferLength PVOID * OutBuffer
Definition: scsi.h:4071
PIN_INSTANCE_INFO * Instances
Definition: interfaces.hpp:201
ULONG PinDescriptorCount
Definition: interfaces.hpp:198
KSPIN_DESCRIPTOR * KsPinDescriptor
Definition: interfaces.hpp:200
ULONG PinDescriptorSize
Definition: interfaces.hpp:199
Definition: interfaces.hpp:180
KSPIN_PHYSICALCONNECTION Connection
Definition: interfaces.hpp:183
LIST_ENTRY Entry
Definition: interfaces.hpp:181
ULONG FromPin
Definition: interfaces.hpp:182
ULONG MaxGlobalInstanceCount
Definition: interfaces.hpp:188
ULONG MinFilterInstanceCount
Definition: interfaces.hpp:190
ULONG MaxFilterInstanceCount
Definition: interfaces.hpp:189
ULONG CurrentPinInstanceCount
Definition: interfaces.hpp:191
PPCFILTER_DESCRIPTOR DeviceDescriptor
Definition: interfaces.hpp:217
LIST_ENTRY PhysicalConnectionList
Definition: interfaces.hpp:220
UNICODE_STRING RefString
Definition: interfaces.hpp:221
PLIST_ENTRY EventList
Definition: interfaces.hpp:214
KSTOPOLOGY * Topology
Definition: interfaces.hpp:218
PKSPROPERTY_SET FilterPropertySet
Definition: interfaces.hpp:210
KSPIN_FACTORY Factory
Definition: interfaces.hpp:208
PKSEVENT_SET EventSet
Definition: interfaces.hpp:213
PKSPIN_LOCK EventListLock
Definition: interfaces.hpp:215
LIST_ENTRY SymbolicLinkList
Definition: interfaces.hpp:219
Definition: interfaces.hpp:174
LIST_ENTRY Entry
Definition: interfaces.hpp:175
UNICODE_STRING SymbolicLink
Definition: interfaces.hpp:176
Definition: typedefs.h:120
static COORD Position
Definition: mouse.c:34
uint32_t * PULONG
Definition: typedefs.h:59
ULONG_PTR SIZE_T
Definition: typedefs.h:80
#define IN
Definition: typedefs.h:39
unsigned char * PUCHAR
Definition: typedefs.h:53
uint32_t ULONG
Definition: typedefs.h:59
#define OUT
Definition: typedefs.h:40
_In_ WDFCOLLECTION _In_ ULONG Index
_In_ PDEVICE_OBJECT DeviceObject
Definition: wdfdevice.h:2055
_Must_inspect_result_ _In_ WDFDEVICE _In_ BOOLEAN _In_opt_ PVOID Tag
Definition: wdfdevice.h:4065
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ DEVPROPTYPE _In_ ULONG Size
Definition: wdfdevice.h:4533
_Must_inspect_result_ _In_ WDFDMATRANSACTION _In_ PFN_WDF_PROGRAM_DMA _In_ WDF_DMA_DIRECTION _In_ PMDL _In_ PVOID VirtualAddress
_In_ WDFDPC _In_ BOOLEAN Wait
Definition: wdfdpc.h:170
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST _In_opt_ PWDF_MEMORY_DESCRIPTOR _In_opt_ PLONGLONG _In_opt_ PWDF_REQUEST_SEND_OPTIONS _Out_opt_ PULONG_PTR BytesWritten
Definition: wdfiotarget.h:960
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_ PCUNICODE_STRING DeviceDescription
Definition: wdfpdo.h:432
_Must_inspect_result_ _In_ WDFIORESLIST _In_ PIO_RESOURCE_DESCRIPTOR Descriptor
Definition: wdfresource.h:342
_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:409
_Must_inspect_result_ _In_ ULONG Flags
Definition: wsk.h:170
_Must_inspect_result_ typedef _In_ PHYSICAL_ADDRESS PhysicalAddress
Definition: iotypes.h:1098
_Must_inspect_result_ typedef _In_ PHYSICAL_ADDRESS _In_ LARGE_INTEGER ByteCount
Definition: iotypes.h:1099
_Must_inspect_result_ _In_ PHYSICAL_ADDRESS HighAddress
Definition: mmfuncs.h:226
_Inout_ PMDL MemoryDescriptorList
Definition: mmfuncs.h:405
_Must_inspect_result_ _In_ PHYSICAL_ADDRESS _In_ PHYSICAL_ADDRESS _In_opt_ PHYSICAL_ADDRESS _In_ MEMORY_CACHING_TYPE CacheType
Definition: mmfuncs.h:217
_Must_inspect_result_ _In_ PHYSICAL_ADDRESS _In_ PHYSICAL_ADDRESS _In_ SIZE_T TotalBytes
Definition: mmfuncs.h:228
enum _MEMORY_CACHING_TYPE MEMORY_CACHING_TYPE