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);
14#define IMP_IIrpTarget \
15 STDMETHODIMP_(NTSTATUS) NewIrpTarget(THIS_ \
16 OUT struct IIrpTarget **OutTarget, \
18 IN PUNKNOWN Unknown, \
19 IN POOL_TYPE PoolType, \
20 IN PDEVICE_OBJECT DeviceObject, \
22 IN KSOBJECT_CREATE *CreateObject); \
24 STDMETHODIMP_(NTSTATUS) DeviceIoControl(THIS_ \
25 IN PDEVICE_OBJECT DeviceObject, \
28 STDMETHODIMP_(NTSTATUS) Read(THIS_ \
29 IN PDEVICE_OBJECT DeviceObject, \
32 STDMETHODIMP_(NTSTATUS) Write(THIS_ \
33 IN PDEVICE_OBJECT DeviceObject, \
36 STDMETHODIMP_(NTSTATUS) Flush(THIS_ \
37 IN PDEVICE_OBJECT DeviceObject, \
40 STDMETHODIMP_(NTSTATUS) Close(THIS_ \
41 IN PDEVICE_OBJECT DeviceObject, \
44 STDMETHODIMP_(NTSTATUS) QuerySecurity(THIS_ \
45 IN PDEVICE_OBJECT DeviceObject, \
48 STDMETHODIMP_(NTSTATUS) SetSecurity(THIS_ \
49 IN PDEVICE_OBJECT DeviceObject, \
52 STDMETHODIMP_(BOOLEAN) FastDeviceIoControl(THIS_ \
53 IN PFILE_OBJECT FileObject, \
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); \
63 STDMETHODIMP_(BOOLEAN) FastRead(THIS_ \
64 IN PFILE_OBJECT FileObject, \
65 IN PLARGE_INTEGER FileOffset, \
70 OUT PIO_STATUS_BLOCK StatusBlock, \
71 IN PDEVICE_OBJECT DeviceObject); \
73 STDMETHODIMP_(BOOLEAN) FastWrite(THIS_ \
74 IN PFILE_OBJECT FileObject, \
75 IN PLARGE_INTEGER FileOffset, \
80 OUT PIO_STATUS_BLOCK StatusBlock, \
81 IN PDEVICE_OBJECT DeviceObject)
83#define DEFINE_ABSTRACT_IRPTARGET() \
84 STDMETHOD_(NTSTATUS, NewIrpTarget)(THIS_ \
85 OUT struct IIrpTarget **OutTarget, \
87 IN PUNKNOWN Unknown, \
88 IN POOL_TYPE PoolType, \
89 IN PDEVICE_OBJECT DeviceObject, \
91 IN KSOBJECT_CREATE *CreateObject) PURE; \
93 STDMETHOD_(NTSTATUS, DeviceIoControl)(THIS_ \
94 IN PDEVICE_OBJECT DeviceObject, \
97 STDMETHOD_(NTSTATUS, Read)(THIS_ \
98 IN PDEVICE_OBJECT DeviceObject, \
101 STDMETHOD_(NTSTATUS, Write)(THIS_ \
102 IN PDEVICE_OBJECT DeviceObject, \
105 STDMETHOD_(NTSTATUS, Flush)(THIS_ \
106 IN PDEVICE_OBJECT DeviceObject, \
109 STDMETHOD_(NTSTATUS, Close)( \
110 IN PDEVICE_OBJECT DeviceObject, \
113 STDMETHOD_(NTSTATUS, QuerySecurity)(THIS_ \
114 IN PDEVICE_OBJECT DeviceObject, \
117 STDMETHOD_(NTSTATUS, SetSecurity)(THIS_ \
118 IN PDEVICE_OBJECT DeviceObject, \
121 STDMETHOD_(BOOLEAN, FastDeviceIoControl)(THIS_ \
122 IN PFILE_OBJECT FileObject, \
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; \
132 STDMETHOD_(BOOLEAN, FastRead)(THIS_ \
133 IN PFILE_OBJECT FileObject, \
134 IN PLARGE_INTEGER FileOffset, \
139 OUT PIO_STATUS_BLOCK StatusBlock, \
140 IN PDEVICE_OBJECT DeviceObject)PURE; \
142 STDMETHOD_(BOOLEAN, FastWrite)(THIS_ \
143 IN PFILE_OBJECT FileObject, \
144 IN PLARGE_INTEGER FileOffset, \
149 OUT PIO_STATUS_BLOCK StatusBlock, \
150 IN PDEVICE_OBJECT DeviceObject)PURE;
155#define INTERFACE IIrpTarget
171struct IIrpTargetFactory;
228#define INTERFACE ISubdevice
230#define DEFINE_ABSTRACT_ISUBDEVICE() \
231 STDMETHOD_(NTSTATUS, NewIrpTarget)(THIS_ \
232 OUT IIrpTarget **OutTarget, \
234 IN PUNKNOWN Unknown, \
235 IN POOL_TYPE PoolType, \
236 IN PDEVICE_OBJECT DeviceObject, \
238 IN KSOBJECT_CREATE *CreateObject) PURE; \
240 STDMETHOD_(NTSTATUS, ReleaseChildren)(THIS) PURE; \
242 STDMETHOD_(NTSTATUS, GetDescriptor)(THIS_ \
243 IN SUBDEVICE_DESCRIPTOR **) PURE; \
245 STDMETHOD_(NTSTATUS, DataRangeIntersection)(THIS_ \
247 IN PKSDATARANGE DataRange, \
248 IN PKSDATARANGE MatchingDataRange, \
249 IN ULONG OutputBufferLength, \
250 OUT PVOID ResultantFormat OPTIONAL, \
251 OUT PULONG ResultantFormatLength) PURE; \
253 STDMETHOD_(NTSTATUS, PowerChangeNotify)(THIS_ \
254 IN POWER_STATE PowerState) PURE; \
256 STDMETHOD_(NTSTATUS, PinCount)(THIS_ \
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;
266#define IMP_ISubdevice \
267 STDMETHODIMP_(NTSTATUS) NewIrpTarget( \
268 OUT IIrpTarget **OutTarget, \
270 IN PUNKNOWN Unknown, \
271 IN POOL_TYPE PoolType, \
272 IN PDEVICE_OBJECT DeviceObject, \
274 IN KSOBJECT_CREATE *CreateObject); \
276 STDMETHODIMP_(NTSTATUS) ReleaseChildren(THIS); \
278 STDMETHODIMP_(NTSTATUS) GetDescriptor(THIS_ \
279 IN SUBDEVICE_DESCRIPTOR **); \
281 STDMETHODIMP_(NTSTATUS) DataRangeIntersection( \
283 IN PKSDATARANGE DataRange, \
284 IN PKSDATARANGE MatchingDataRange, \
285 IN ULONG OutputBufferLength, \
286 OUT PVOID ResultantFormat OPTIONAL, \
287 OUT PULONG ResultantFormatLength); \
289 STDMETHODIMP_(NTSTATUS) PowerChangeNotify( \
290 IN POWER_STATE PowerState); \
292 STDMETHODIMP_(NTSTATUS) PinCount( \
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)
315#define INTERFACE IIrpQueue
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); \
370 STDMETHODIMP_(NTSTATUS) AddMapping(THIS_ \
374 STDMETHODIMP_(NTSTATUS) GetMapping(THIS_ \
375 OUT PUCHAR * Buffer, \
376 OUT PULONG BufferSize); \
378 STDMETHODIMP_(VOID) UpdateMapping(THIS_ \
379 IN ULONG BytesWritten); \
381 STDMETHODIMP_(ULONG) NumData(THIS); \
383 STDMETHODIMP_(BOOL) CancelBuffers(THIS); \
385 STDMETHODIMP_(NTSTATUS) GetMappingWithTag(THIS_ \
387 OUT PPHYSICAL_ADDRESS PhysicalAddress, \
388 OUT PVOID *VirtualAddress, \
389 OUT PULONG ByteCount, \
392 STDMETHODIMP_(NTSTATUS) ReleaseMappingWithTag( \
395 STDMETHODIMP_(BOOLEAN) HasLastMappingFailed(THIS); \
396 STDMETHODIMP_(ULONG) GetCurrentIrpOffset(THIS); \
397 STDMETHODIMP_(BOOLEAN) GetAcquiredTagRange(THIS_ \
398 IN PVOID * FirstTag, \
408#define INTERFACE IKsWorkSink
422#define INTERFACE IIrpStreamNotify
424struct IRPSTREAMPOSITION;
444#define INTERFACE IKsShellTransport
446#define DEFINE_ABSTRACT_IKSSHELLTRANSPORT() \
447 STDMETHOD_(NTSTATUS, TransferKsIrp)(THIS_ \
449 OUT IKsShellTransport ** Transport) PURE; \
451 STDMETHOD_(NTSTATUS, Connect)(THIS_ \
452 IN IKsShellTransport * StartTransport, \
453 OUT IKsShellTransport ** EndTransport, \
454 IN KSPIN_DATAFLOW DataFlow)PURE; \
456 STDMETHOD_(NTSTATUS, SetDeviceState)(THIS_ \
459 OUT IKsShellTransport ** EndTransport)PURE; \
461 STDMETHOD_(NTSTATUS, SetResetState)(THIS_ \
463 OUT IKsShellTransport ** EndTransport)PURE;
477struct IRPSTREAM_POSITION;
478struct IRPSTREAMPACKETINFO;
480#define DEFINE_ABSTRACT_IRPSTREAM() \
481 STDMETHOD_(NTSTATUS, TransferKsIrp)(THIS_ \
483 OUT IKsShellTransport ** Transport) PURE; \
485 STDMETHOD_(NTSTATUS, Connect)(THIS_ \
486 IN IKsShellTransport * StartTransport, \
487 OUT IKsShellTransport ** EndTransport, \
488 IN KSPIN_DATAFLOW DataFlow)PURE; \
490 STDMETHOD_(NTSTATUS, SetDeviceState)(THIS_ \
493 OUT IKsShellTransport ** EndTransport)PURE; \
495 STDMETHOD_(NTSTATUS, SetResetState)(THIS_ \
497 OUT IKsShellTransport ** EndTransport)PURE; \
499 STDMETHOD_(NTSTATUS, GetPosition)(THIS_ \
500 IN OUT struct IRPSTREAM_POSITION * Position) PURE; \
502 STDMETHOD_(NTSTATUS, Init)(THIS_ \
504 KSPIN_CONNECT *ConnectDetails, \
505 PDEVICE_OBJECT DeviceObject, \
506 PDMA_ADAPTER DmaAdapter) PURE; \
508 STDMETHOD_(NTSTATUS, CancelAllIrps)(THIS_ \
511 STDMETHOD_(VOID, TerminatePacket)(THIS); \
513 STDMETHOD_(NTSTATUS, ChangeOptionsFlag)(THIS_ \
517 ULONG Unknown4)PURE; \
519 STDMETHOD_(NTSTATUS, GetPacketInfo)(THIS_ \
520 struct IRPSTREAMPACKETINFO * Info1, \
521 struct IRPSTREAMPACKETINFO * Info2)PURE; \
523 STDMETHOD_(NTSTATUS, SetPacketOffsets)(THIS_ \
525 ULONG Unknown2)PURE; \
527 STDMETHOD_(NTSTATUS, RegisterNotifySink)(THIS_ \
528 IN IIrpStreamNotify * NotifyStream)PURE;
533#define INTERFACE IIrpStream
548#define INTERFACE IIrpStreamPhysical
570#define INTERFACE IIrpStreamVirtual
601#define INTERFACE IPortFilterWavePci
603struct IPortPinWavePci;
620#define IMP_IPortFilterPci \
622 STDMETHODIMP_(NTSTATUS) Init(THIS_ \
623 IN PPORTWAVEPCI Port); \
624 STDMETHODIMP_(NTSTATUS) FreePin(THIS_ \
625 IN struct IPortPinWavePci* Pin)
634#define INTERFACE IPortPinWavePci
646 IN KSPIN_DESCRIPTOR * PinDescriptor,
653#define IMP_IPortPinWavePci \
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); \
662 STDMETHODIMP_(PVOID) GetIrpStream(); \
663 STDMETHODIMP_(PMINIPORT) GetMiniport(THIS)
670#if (NTDDI_VERSION >= NTDDI_VISTA)
678#define INTERFACE IPortFilterWaveRT
696#define IMP_IPortFilterWaveRT \
698 STDMETHODIMP_(NTSTATUS) Init(THIS_ \
708#define INTERFACE IPortPinWaveRT
720 IN KSPIN_DESCRIPTOR * PinDescriptor,
726#define IMP_IPortPinWaveRT \
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)
744#define INTERFACE IPortFilterWaveCyclic
746struct IPortPinWaveCyclic;
763#define IMP_IPortFilterWaveCyclic \
765 STDMETHODIMP_(NTSTATUS) Init(THIS_ \
766 IN PPORTWAVECYCLIC Port); \
767 STDMETHODIMP_(NTSTATUS) FreePin(THIS_ \
768 IN struct IPortPinWaveCyclic* Pin)
777#define INTERFACE IPortPinWaveCyclic
789 IN KSPIN_DESCRIPTOR * PinDescriptor)
PURE;
800#define IMP_IPortPinWaveCyclic \
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)
820#define INTERFACE IPortFilterDMus
841#define IMP_IPortFilterDMus \
843 STDMETHODIMP_(NTSTATUS) Init(THIS_ \
844 IN PPORTDMUS Port); \
845 STDMETHODIMP_(NTSTATUS) FreePin(THIS_ \
846 IN struct IPortPinDMus* Pin); \
847 STDMETHODIMP_(VOID) NotifyPins(THIS)
855#define INTERFACE IPortPinDMus
867 IN KSPIN_DESCRIPTOR * PinDescriptor,
873#define IMP_IPortPinDMus \
875 STDMETHODIMP_(NTSTATUS) Init(THIS_ \
877 IN PPORTFILTERDMUS Filter, \
878 IN KSPIN_CONNECT * ConnectDetails, \
879 IN KSPIN_DESCRIPTOR * PinDescriptor, \
880 IN PDEVICE_OBJECT DeviceObject); \
881 STDMETHODIMP_(VOID) Notify(THIS)
892#define IMP_IDmaChannelEx \
893 STDMETHODIMP_(NTSTATUS) AllocateBuffer( \
894 IN ULONG BufferSize, \
895 IN PPHYSICAL_ADDRESS PhysicalAddressConstraint OPTIONAL); \
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); \
903 STDMETHODIMP_(void) SetBufferSize( \
904 IN ULONG BufferSize); \
906 STDMETHODIMP_(PVOID) SystemAddress(void); \
907 STDMETHODIMP_(PHYSICAL_ADDRESS) PhysicalAddress(); \
908 STDMETHODIMP_(PADAPTER_OBJECT) GetAdapterObject(void); \
910 STDMETHODIMP_(void) CopyTo( \
911 IN PVOID Destination, \
913 IN ULONG ByteCount); \
915 STDMETHODIMP_(void) CopyFrom( \
916 IN PVOID Destination, \
922#define IMP_IDmaChannelEx \
923 STDMETHODIMP_(NTSTATUS) AllocateBuffer( \
924 IN ULONG BufferSize, \
925 IN PPHYSICAL_ADDRESS PhysicalAddressConstraint OPTIONAL); \
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); \
933 STDMETHODIMP_(void) SetBufferSize( \
934 IN ULONG BufferSize); \
936 STDMETHODIMP_(PVOID) SystemAddress(void); \
937 STDMETHODIMP_(PHYSICAL_ADDRESS) PhysicalAddress( \
938 IN PPHYSICAL_ADDRESS PhysicalAddressConstraint OPTIONAL); \
939 STDMETHODIMP_(PADAPTER_OBJECT) GetAdapterObject(void); \
941 STDMETHODIMP_(void) CopyTo( \
942 IN PVOID Destination, \
944 IN ULONG ByteCount); \
946 STDMETHODIMP_(void) CopyFrom( \
947 IN PVOID Destination, \
956#define IMP_IDmaChannelSlaveEx \
958 STDMETHODIMP_(NTSTATUS) Start( \
960 IN BOOLEAN WriteToDevice); \
962 STDMETHODIMP_(NTSTATUS) Stop(void); \
963 STDMETHODIMP_(ULONG) ReadCounter(void); \
965 STDMETHODIMP_(NTSTATUS) WaitForTC( \
968#define IMP_IDmaChannelInit\
969 IMP_IDmaChannelSlaveEx;\
970 STDMETHODIMP_(NTSTATUS) Init( \
971 IN PDEVICE_DESCRIPTION DeviceDescription, \
972 IN PDEVICE_OBJECT DeviceObject)
976#define DEFINE_ABSTRACT_DMACHANNEL_EX() \
977 STDMETHOD_(NTSTATUS, AllocateBuffer)( THIS_ \
978 IN ULONG BufferSize, \
979 IN PPHYSICAL_ADDRESS PhysicalAddressConstraint OPTIONAL) PURE; \
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; \
987 STDMETHOD_(void, SetBufferSize)( THIS_ \
988 IN ULONG BufferSize) PURE; \
990 STDMETHOD_(PVOID, SystemAddress)( THIS ) PURE; \
991 STDMETHOD_(PHYSICAL_ADDRESS, PhysicalAddress)( THIS) PURE; \
992 STDMETHOD_(PADAPTER_OBJECT, GetAdapterObject)( THIS ) PURE; \
994 STDMETHOD_(void, CopyTo)( THIS_ \
995 IN PVOID Destination, \
997 IN ULONG ByteCount) PURE; \
999 STDMETHOD_(void, CopyFrom)( THIS_ \
1000 IN PVOID Destination, \
1002 IN ULONG ByteCount) PURE;
1005#define DEFINE_ABSTRACT_DMACHANNEL_EX() \
1006 STDMETHOD_(NTSTATUS, AllocateBuffer)( THIS_ \
1007 IN ULONG BufferSize, \
1008 IN PPHYSICAL_ADDRESS PhysicalAddressConstraint OPTIONAL) PURE; \
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; \
1016 STDMETHOD_(void, SetBufferSize)( THIS_ \
1017 IN ULONG BufferSize) PURE; \
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; \
1024 STDMETHOD_(void, CopyTo)( THIS_ \
1025 IN PVOID Destination, \
1027 IN ULONG ByteCount) PURE; \
1029 STDMETHOD_(void, CopyFrom)( THIS_ \
1030 IN PVOID Destination, \
1032 IN ULONG ByteCount) PURE;
1036#define INTERFACE IDmaChannelInit
1057#define INTERFACE IPortFilterTopology
1071#define IMP_IPortFilterTopology \
1073 STDMETHODIMP_(NTSTATUS) Init(THIS_ \
1074 IN PPORTTOPOLOGY Port)
1084#define INTERFACE IPortWaveRTStreamInit
1136#define IMP_IPortWaveRTStreamInit \
1137 STDMETHODIMP_(PMDL) AllocatePagesForMdl \
1139 IN PHYSICAL_ADDRESS HighAddress, \
1140 IN SIZE_T TotalBytes \
1143 STDMETHODIMP_(PMDL) AllocateContiguousPagesForMdl \
1145 IN PHYSICAL_ADDRESS LowAddress, \
1146 IN PHYSICAL_ADDRESS HighAddress, \
1147 IN SIZE_T TotalBytes \
1150 STDMETHODIMP_(PVOID) MapAllocatedPages \
1152 IN PMDL MemoryDescriptorList, \
1153 IN MEMORY_CACHING_TYPE CacheType \
1156 STDMETHODIMP_(VOID) UnmapAllocatedPages \
1158 IN PVOID BaseAddress, \
1159 IN PMDL MemoryDescriptorList \
1162 STDMETHODIMP_(VOID) FreePagesFromMdl \
1164 IN PMDL MemoryDescriptorList \
1167 STDMETHODIMP_(ULONG) GetPhysicalPagesCount \
1169 IN PMDL MemoryDescriptorList \
1172 STDMETHODIMP_(PHYSICAL_ADDRESS) GetPhysicalPageAddress \
1174 IN PPHYSICAL_ADDRESS Address, \
1175 IN PMDL MemoryDescriptorList, \
1179#ifndef IMP_IPortClsVersion
1181#define IMP_IPortClsVersion \
1182 STDMETHODIMP_(DWORD) GetVersion(void);
1186#ifdef IMP_IPortWaveRT
1187#define IMP_IPortWaveRT IMP_IPort
IPortFilterDMus * PPORTFILTERDMUS
#define DEFINE_ABSTRACT_ISUBDEVICE()
IPortWaveRT * PPORTWAVERT
IPortFilterWaveCyclic * PPORTFILTERWAVECYCLIC
IPortPinWaveRT * PPORTPINWAVERT
#define DEFINE_ABSTRACT_DMACHANNEL_EX()
#define DEFINE_ABSTRACT_IRPTARGET()
struct PHYSICAL_CONNECTION_ENTRY * PPHYSICAL_CONNECTION_ENTRY
#define DEFINE_ABSTRACT_IRPSTREAM()
#define DEFINE_ABSTRACT_IKSSHELLTRANSPORT()
struct SUBDEVICE_DESCRIPTOR * PSUBDEVICE_DESCRIPTOR
IPortFilterWaveRT * PPORTFILTERWAVERT
IPortPinWaveCyclic * PPORTPINWAVECYCLIC
struct PIN_INSTANCE_INFO * PPIN_INSTANCE_INFO
IPortPinDMus * PPORTPINDMUS
IPortFilterTopology * PPORTFILTERTOPOLOGY
IPortPinWavePci * PPORTPINWAVEPCI
IPortFilterWavePci * PPORTFILTERWAVEPCI
struct SYMBOLICLINK_ENTRY * PSYMBOLICLINK_ENTRY
#define DECLARE_INTERFACE_(i, b)
BOOL WINAPI SHIM_OBJ_NAME() Notify(DWORD fdwReason, PVOID ptr)
VOID Copy(PVOID Src, PVOID Dst, ULONG NumBytes)
IN PDCB IN VBO IN ULONG IN BOOLEAN Pin
_Must_inspect_result_ _In_opt_ PFLT_FILTER Filter
union Alignment_ Alignment
pRequest Complete(RequestStatus)
#define DEFINE_ABSTRACT_UNKNOWN()
DWORD GetPosition(DWORD private_handle, PMMTIME time, DWORD time_size)
_In_ HANDLE _Outptr_result_bytebuffer_ ViewSize PVOID * BaseAddress
#define DEFINE_ABSTRACT_DMACHANNELSLAVE()
IPortWaveCyclic * PPORTWAVECYCLIC
IPortTopology * PPORTTOPOLOGY
IPortWavePci * PPORTWAVEPCI
#define DEFINE_GUID(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8)
_In_ UCHAR _In_ ULONG _Out_ PUCHAR _Outptr_result_bytebuffer_ OutBufferLength PVOID * OutBuffer
PIN_INSTANCE_INFO * Instances
KSPIN_DESCRIPTOR * KsPinDescriptor
KSPIN_PHYSICALCONNECTION Connection
ULONG MaxGlobalInstanceCount
ULONG MinFilterInstanceCount
ULONG MaxFilterInstanceCount
ULONG CurrentPinInstanceCount
PPCFILTER_DESCRIPTOR DeviceDescriptor
LIST_ENTRY PhysicalConnectionList
PKSPROPERTY_SET FilterPropertySet
ULONG FilterPropertySetCount
PKSPIN_LOCK EventListLock
LIST_ENTRY SymbolicLinkList
UNICODE_STRING SymbolicLink
_In_ WDFCOLLECTION _In_ ULONG Index
_In_ PDEVICE_OBJECT DeviceObject
_Must_inspect_result_ _In_ WDFDEVICE _In_ BOOLEAN _In_opt_ PVOID Tag
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ DEVPROPTYPE _In_ ULONG Size
_Must_inspect_result_ _In_ WDFDMATRANSACTION _In_ PFN_WDF_PROGRAM_DMA _In_ WDF_DMA_DIRECTION _In_ PMDL _In_ PVOID VirtualAddress
_In_ WDFDPC _In_ BOOLEAN Wait
_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
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_ PCUNICODE_STRING DeviceDescription
_Must_inspect_result_ _In_ WDFIORESLIST _In_ PIO_RESOURCE_DESCRIPTOR Descriptor
_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
_Must_inspect_result_ _In_ ULONG Flags
_Must_inspect_result_ typedef _In_ PHYSICAL_ADDRESS PhysicalAddress
_Must_inspect_result_ typedef _In_ PHYSICAL_ADDRESS _In_ LARGE_INTEGER ByteCount
_Must_inspect_result_ _In_ PHYSICAL_ADDRESS HighAddress
_Inout_ PMDL MemoryDescriptorList
_Must_inspect_result_ _In_ PHYSICAL_ADDRESS _In_ PHYSICAL_ADDRESS _In_opt_ PHYSICAL_ADDRESS _In_ MEMORY_CACHING_TYPE CacheType
_Must_inspect_result_ _In_ PHYSICAL_ADDRESS _In_ PHYSICAL_ADDRESS _In_ SIZE_T TotalBytes
enum _MEMORY_CACHING_TYPE MEMORY_CACHING_TYPE